Submission #433555


Source Code Expand

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

#define gc getchar
int getint() { unsigned int c; int x = 0; while (((c = gc()) - '0') >= 10) { if (c == '-') return -getint(); if (!~c) exit(0); } do { x = (x << 3) + (x << 1) + (c - '0'); } while (((c = gc()) - '0') < 10); return x; }
int getstr(char *s) { int c, n = 0; while ((c = gc()) <= ' ') { if (!~c) exit(0); } do { s[n++] = c; } while ((c = gc()) > ' ' ); s[n] = 0; return n; }
template<class T> inline bool chmin(T &a, T b) { return a > b ? a = b, 1 : 0; }
template<class T> inline bool chmax(T &a, T b) { return a < b ? a = b, 1 : 0; }

int grid[3][3];
int bs[2][3], cs[3][2];

pair<int, int> solve(int who, int turn) {
    if (turn == 9) {
        int a = 0, b = 0;
        for (int i = 0; i < 2; i++) for (int j = 0; j < 3; j++) {
            if (grid[i][j] == grid[i + 1][j]) a += bs[i][j];
            else b += bs[i][j];
        }
        for (int i = 0; i < 3; i++) for (int j = 0; j < 2; j++) {
            if (grid[i][j] == grid[i][j + 1]) a += cs[i][j];
            else b += cs[i][j];
        }
        return make_pair(a, b);
    }
    pair<int, int> res(0, 0), tmp;
    for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) if (grid[i][j] == -1) {
        grid[i][j] = who;
        tmp = solve(1 - who, turn + 1);
        if (who == 0) if (tmp.first > res.first) res = tmp;
        if (who == 0) if (tmp.first == res.first && tmp.second < res.second) res = tmp;
        if (who == 1) if (tmp.second > res.second) res = tmp;
        if (who == 1) if (tmp.second == res.second && tmp.first < res.first) res = tmp;
        grid[i][j] = -1;
    }
    return res;
}

int main () {
    int i, j, tcc, tc = 1;
    for (tcc = 0; tcc < tc; tcc++) {
        for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) bs[i][j] = getint();
        for (i = 0; i < 3; i++) for (j = 0; j < 2; j++) cs[i][j] = getint();
        memset(grid, ~0, sizeof(grid));
        pair<int, int> res = solve(0, 0);
        printf("%d\n%d\n", res.first, res.second);
    }
    return 0;
}

Submission Info

Submission Time
Task C - 双子と○×ゲーム
User Hagentern
Language C++11 (GCC 4.9.2)
Score 0
Code Size 2097 Byte
Status WA
Exec Time 79 ms
Memory 924 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 2
AC × 14
WA × 8
Set Name Test Cases
Sample sample-01.txt, sample-02.txt
All 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 75 ms 916 KB
sample-02.txt AC 77 ms 808 KB
test-01.txt AC 75 ms 672 KB
test-02.txt AC 76 ms 924 KB
test-03.txt AC 77 ms 796 KB
test-04.txt WA 79 ms 844 KB
test-05.txt WA 74 ms 800 KB
test-06.txt WA 74 ms 804 KB
test-07.txt AC 75 ms 800 KB
test-08.txt AC 76 ms 800 KB
test-09.txt AC 75 ms 804 KB
test-10.txt AC 77 ms 800 KB
test-11.txt AC 72 ms 676 KB
test-12.txt WA 76 ms 844 KB
test-13.txt WA 76 ms 800 KB
test-14.txt AC 76 ms 804 KB
test-15.txt WA 75 ms 800 KB
test-16.txt AC 75 ms 804 KB
test-17.txt WA 74 ms 732 KB
test-18.txt AC 75 ms 796 KB
test-19.txt WA 74 ms 676 KB
test-20.txt AC 74 ms 800 KB