Submission #433233


Source Code Expand

#include <cstdio>
#include <cstring>
#include <utility>

using namespace std;

int a[3][3], b[3][3];
int c[3][3];

pair<int, int> max(int p, const pair<int,int>& a, const pair<int,int>& b)
{
  if (p%2 == 0) {
    if (a.first < b.first) return b;
    if (a.first > b.first) return a;
    if (a.second < b.second) return b;
    return a;
  } else {
    if (a.second < b.second) return b;
    if (a.second > b.second) return a;
    if (a.first < b.first) return b;
    return a;
  }
}

pair<int,int> solve(int p)
{
  pair<int,int> res{0, 0};
  if (p == 9) {
    for (int i = 0; i < 2; i++) {
      for (int j = 0; j < 3; j++) {
        if (c[i][j] == c[i+1][j]) {
          res.first += a[i][j];
        } else {
          res.second += a[i][j];
        }
      }
    }
    for (int i = 0; i < 3; i++) {
      for (int j = 0; j < 2; j++) {
        if (c[i][j] == c[i][j+1]) {
          res.first += b[i][j];
        } else {
          res.second += b[i][j];
        }
      }
    }
    return res;
  }
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      if (c[i][j] < 0) {
        c[i][j] = p%2;
        res = max(p, res, solve(p+1));
        c[i][j] = -1;
      }
    }
  }
  return res;
}

int main(void)
{
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
      scanf("%d", a[i]+j);
    }
  }
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 2; j++) {
      scanf("%d", b[i]+j);
    }
  }
  memset(c, -1, sizeof(c));
  pair<int,int> res = solve(0);
  printf("%d\n%d\n", res.first, res.second);
  return 0;
}

Submission Info

Submission Time
Task C - 双子と○×ゲーム
User roxion1377
Language C++11 (GCC 4.9.2)
Score 100
Code Size 1628 Byte
Status AC
Exec Time 79 ms
Memory 804 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:65:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d", a[i]+j);
                          ^
./Main.cpp:70:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d", b[i]+j);
                          ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 22
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 76 ms 696 KB
sample-02.txt AC 76 ms 796 KB
test-01.txt AC 76 ms 696 KB
test-02.txt AC 77 ms 796 KB
test-03.txt AC 79 ms 800 KB
test-04.txt AC 77 ms 804 KB
test-05.txt AC 79 ms 800 KB
test-06.txt AC 74 ms 672 KB
test-07.txt AC 74 ms 796 KB
test-08.txt AC 74 ms 712 KB
test-09.txt AC 74 ms 800 KB
test-10.txt AC 76 ms 800 KB
test-11.txt AC 73 ms 800 KB
test-12.txt AC 75 ms 800 KB
test-13.txt AC 76 ms 676 KB
test-14.txt AC 76 ms 800 KB
test-15.txt AC 76 ms 800 KB
test-16.txt AC 76 ms 800 KB
test-17.txt AC 76 ms 800 KB
test-18.txt AC 74 ms 800 KB
test-19.txt AC 74 ms 800 KB
test-20.txt AC 75 ms 676 KB