Submission #4635281


Source Code Expand

#include <iostream>
#include <climits>
#include <algorithm>
#include <vector>
#include <tuple>
using namespace std;
typedef long long ll;

int b[2][3],c[3][2];
int table[3][3];

tuple<int,int> calc(){
	int sum1=0,sum2=0;
	for(int i=0;i<3;i++){
		for(int j=0;j<2;j++){
			if((table[j][i]==1 && table[j+1][i]==1)  ||  (table[j][i]==2 && table[j+1][i]==2)){
				sum1+=b[j][i];
			}else{
				sum2+=b[j][i];
			}
		}
	}
	for(int i=0;i<3;i++){
		for(int j=0;j<2;j++){
			if((table[i][j]==1 && table[i][j+1]==1)  ||  (table[i][j]==2 && table[i][j+1]==2)){
				sum1+=c[i][j];
			}else{
				sum2+=c[i][j];
			}
		}
	}
	return forward_as_tuple(sum1,sum2);
}

tuple<int,int> dfs(int turn){
	int res=INT_MIN,x,y,re1,re2,choku,naoko;
	if(turn==10){
		tie(choku,naoko)=calc();
		return forward_as_tuple(choku,naoko); 
	}
	if(turn%2==1){//ちょくだい(1)
		for(int i=0;i<3;i++){
			for(int j=0;j<3;j++){
				if(table[i][j]!=0) continue;
				table[i][j]=1;
				tie(x,y)=dfs(turn+1);
				if(x-y>res){
					res=x-y;
					re1=x;
					re2=y;
				}
				table[i][j]=0;
			}
		}
	}
	if(turn%2==0){//なおこ(2)
		for(int i=0;i<3;i++){
			for(int j=0;j<3;j++){
				if(table[i][j]!=0) continue;
				table[i][j]=2;
				tie(x,y)=dfs(turn+1);
				if(y-x>res){
					res=y-x;
					re1=x;
					re2=y;
				}
				table[i][j]=0;
			}
		}
	}
	return forward_as_tuple(re1,re2);
}

int main(){
	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			table[i][j]=0;
		}
	}
	for(int i=0;i<2;i++){
		for(int j=0;j<3;j++){
			cin>>b[i][j];
		}
	}
	for(int i=0;i<3;i++){
		for(int j=0;j<2;j++){
			cin>>c[i][j];
		}
	}
	int ans1,ans2;
	tie(ans1,ans2)=dfs(1);
	cout<<ans1<<endl<<ans2<<endl;
    return 0;
}

Submission Info

Submission Time
Task C - 双子と○×ゲーム
User rainy2041
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1754 Byte
Status AC
Exec Time 33 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 24
Set Name Test Cases
Sample sample-01.txt, sample-02.txt
All sample-01.txt, sample-02.txt, test-01.txt, test-02.txt, test-03.txt, test-04.txt, test-05.txt, test-06.txt, test-07.txt, test-08.txt, test-09.txt, test-10.txt, test-11.txt, test-12.txt, test-13.txt, test-14.txt, test-15.txt, test-16.txt, test-17.txt, test-18.txt, test-19.txt, test-20.txt, sample-01.txt, sample-02.txt
Case Name Status Exec Time Memory
sample-01.txt AC 32 ms 256 KB
sample-02.txt AC 33 ms 256 KB
test-01.txt AC 33 ms 256 KB
test-02.txt AC 32 ms 256 KB
test-03.txt AC 32 ms 256 KB
test-04.txt AC 32 ms 256 KB
test-05.txt AC 33 ms 256 KB
test-06.txt AC 32 ms 256 KB
test-07.txt AC 33 ms 256 KB
test-08.txt AC 32 ms 256 KB
test-09.txt AC 32 ms 256 KB
test-10.txt AC 33 ms 256 KB
test-11.txt AC 32 ms 256 KB
test-12.txt AC 32 ms 256 KB
test-13.txt AC 32 ms 256 KB
test-14.txt AC 33 ms 256 KB
test-15.txt AC 32 ms 256 KB
test-16.txt AC 33 ms 256 KB
test-17.txt AC 32 ms 256 KB
test-18.txt AC 32 ms 256 KB
test-19.txt AC 32 ms 256 KB
test-20.txt AC 33 ms 256 KB