Submission #3975141


Source Code Expand

#include <algorithm>
#include <bitset>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <deque>
#include <fstream>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <vector>
using namespace std;
using ll = long long;
#define fst first
#define snd second

/* clang-format off */
template <class T, size_t D> struct _vec { using type = vector<typename _vec<T, D - 1>::type>; };
template <class T> struct _vec<T, 0> { using type = T; };
template <class T, size_t D> using vec = typename _vec<T, D>::type;
template <class T> vector<T> make_v(size_t size, const T& init) { return vector<T>(size, init); }
template <class... Ts> auto make_v(size_t size, Ts... rest) { return vector<decltype(make_v(rest...))>(size, make_v(rest...)); }
/* clang-format on */

const int INF = 1 << 28;

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

int score() {
  int s = 0;
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < 3; j++)
      s += b[i][j] * (a[i][j] == a[i + 1][j] ? 1 : -1);
  for (int i = 0; i < 3; i++)
    for (int j = 0; j < 2; j++)
      s += c[i][j] * (a[i][j] == a[i][j + 1] ? 1 : -1);
  return s;
}

int dfs(int turn = 0) {
  if (turn == 9)
    return -score();
  int res = -INF;
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      if (a[i][j] == 0) {
        a[i][j] = turn % 2 + 1;
        res = max(res, -dfs(turn + 1));
        a[i][j] = 0;
      }
    }
  }
  return res;
}

int main() {
  int s = 0;
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < 3; j++) cin >> b[i][j], s += b[i][j];
  for (int i = 0; i < 3; i++)
    for (int j = 0; j < 2; j++) cin >> c[i][j], s += c[i][j];
  int d = dfs();
  int x = (s + d) / 2;
  int y = s - x;
  cout << x << endl;
  cout << y << endl;
  return 0;
}

Submission Info

Submission Time
Task C - 双子と○×ゲーム
User kroton
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1906 Byte
Status AC
Exec Time 16 ms
Memory 384 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 16 ms 256 KB
sample-02.txt AC 16 ms 256 KB
test-01.txt AC 16 ms 256 KB
test-02.txt AC 16 ms 256 KB
test-03.txt AC 16 ms 256 KB
test-04.txt AC 16 ms 256 KB
test-05.txt AC 16 ms 256 KB
test-06.txt AC 16 ms 256 KB
test-07.txt AC 16 ms 256 KB
test-08.txt AC 16 ms 256 KB
test-09.txt AC 16 ms 256 KB
test-10.txt AC 16 ms 256 KB
test-11.txt AC 16 ms 256 KB
test-12.txt AC 16 ms 256 KB
test-13.txt AC 16 ms 256 KB
test-14.txt AC 16 ms 256 KB
test-15.txt AC 16 ms 256 KB
test-16.txt AC 16 ms 256 KB
test-17.txt AC 16 ms 256 KB
test-18.txt AC 16 ms 256 KB
test-19.txt AC 16 ms 256 KB
test-20.txt AC 16 ms 384 KB