Submission #11454055
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for(int i = 0; i < n; i++)
#define rep2(i, x, n) for(int i = x; i <= n; i++)
#define rep3(i, x, n) for(int i = x; i >= n; i--)
#define elif else if
#define sp setprecision
#define pb(x) push_back(x)
using ll = long long;
using ld = long double;
using pii = pair<int, int>;
using pil = pair<int, ll>;
using pli = pair<ll, int>;
using pll = pair<ll, ll>;
const ll MOD = 1e9+7;
//const ll MOD = 998244353;
const int inf = 1e9;
const ll INF = 1e18;
const ld EPS = 1e-10;
const string alpha = "abcdefghijklmnopqrstuvwxyz";
int main(){
int b[2][3], c[3][2], sum = 0;
rep(i, 2) rep(j, 3) cin >> b[i][j], sum += b[i][j];
rep(i, 3) rep(j, 2) cin >> c[i][j], sum += c[i][j];
int dp[1<<9][1<<9];
rep3(s, 9, 0){
rep(i, 1<<9){
if(__builtin_popcount(i) != s) continue;
rep(j, 1<<9){
//oならば0,xならば1,何も書いてなければ-1
int a[9];
rep(k, 9){
if(i & (1<<k)) a[k] = (j>>k) & 1;
else a[k] = -1;
}
if(s == 9){
int sum = 0;
rep(x, 2) rep(y, 3){
if(a[3*x+y] == a[3*(x+1)+y]) sum += b[x][y];
else sum -= b[x][y];
}
rep(x, 3) rep(y, 2){
if(a[3*x+y] == a[3*x+y+1]) sum += c[x][y];
else sum -= c[x][y];
}
dp[i][j] = sum;
}
else{
//oを打つ場合スコアを最大にしたい
if(s%2 == 0){
int res = -inf;
rep(k, 9){
if(a[k] >= 0) continue;
res = max(res, dp[i|(1<<k)][j&~(1<<k)]);
}
dp[i][j] = res;
}
//xを打つ場合スコアを最小にしたい
else{
int res = inf;
rep(k, 9){
if(a[k] >= 0) continue;
res = min(res, dp[i|(1<<k)][j|(1<<k)]);
}
dp[i][j] = res;
}
}
}
}
}
cout << (sum+dp[0][0])/2 << endl;
cout << (sum-dp[0][0])/2 << endl;
}
Submission Info
Submission Time |
|
Task |
C - 双子と○×ゲーム |
User |
tokusakurai |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2570 Byte |
Status |
AC |
Exec Time |
7 ms |
Memory |
1280 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
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 |
7 ms |
1280 KB |
sample-02.txt |
AC |
7 ms |
1280 KB |
test-01.txt |
AC |
7 ms |
1280 KB |
test-02.txt |
AC |
7 ms |
1280 KB |
test-03.txt |
AC |
7 ms |
1280 KB |
test-04.txt |
AC |
7 ms |
1280 KB |
test-05.txt |
AC |
7 ms |
1280 KB |
test-06.txt |
AC |
7 ms |
1280 KB |
test-07.txt |
AC |
7 ms |
1280 KB |
test-08.txt |
AC |
7 ms |
1280 KB |
test-09.txt |
AC |
7 ms |
1280 KB |
test-10.txt |
AC |
7 ms |
1280 KB |
test-11.txt |
AC |
7 ms |
1280 KB |
test-12.txt |
AC |
7 ms |
1280 KB |
test-13.txt |
AC |
7 ms |
1280 KB |
test-14.txt |
AC |
7 ms |
1280 KB |
test-15.txt |
AC |
7 ms |
1280 KB |
test-16.txt |
AC |
7 ms |
1280 KB |
test-17.txt |
AC |
7 ms |
1280 KB |
test-18.txt |
AC |
7 ms |
1280 KB |
test-19.txt |
AC |
7 ms |
1280 KB |
test-20.txt |
AC |
7 ms |
1280 KB |