AtCoder Beginner Contest 025

Submission #3975141

Source codeソースコード

#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

Task問題 C - 双子と○×ゲーム
User nameユーザ名 kroton
Created time投稿日時
Language言語 C++14 (GCC 5.4.1)
Status状態 AC
Score得点 100
Source lengthソースコード長 1906 Byte
File nameファイル名
Exec time実行時間 16 ms
Memory usageメモリ使用量 384 KB

Test case

Set

Set name Score得点 / Max score Cases
Sample - sample-01.txt,sample-02.txt
All 100 / 100 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

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
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