QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#676827#7179. Fischer's Chess Guessing GamemaspyAC ✓15ms4792kbC++2311.3kb2024-10-26 01:07:332024-10-26 01:07:33

Judging History

你现在查看的是最新测评结果

  • [2024-10-26 01:07:33]
  • 评测
  • 测评结果:AC
  • 用时:15ms
  • 内存:4792kb
  • [2024-10-26 01:07:33]
  • 提交

answer

#line 1 "/home/maspy/compro/library/my_template.hpp"
#if defined(LOCAL)
#include <my_template_compiled.hpp>
#else

// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("Ofast,unroll-loops")
// いまの CF だとこれ入れると動かない?
// #pragma GCC target("avx2,popcnt")

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using u8 = uint8_t;
using u16 = uint16_t;
using u32 = uint32_t;
using u64 = uint64_t;
using i128 = __int128;
using u128 = unsigned __int128;
using f128 = __float128;

template <class T>
constexpr T infty = 0;
template <>
constexpr int infty<int> = 1'010'000'000;
template <>
constexpr ll infty<ll> = 2'020'000'000'000'000'000;
template <>
constexpr u32 infty<u32> = infty<int>;
template <>
constexpr u64 infty<u64> = infty<ll>;
template <>
constexpr i128 infty<i128> = i128(infty<ll>) * 2'000'000'000'000'000'000;
template <>
constexpr double infty<double> = infty<ll>;
template <>
constexpr long double infty<long double> = infty<ll>;

using pi = pair<ll, ll>;
using vi = vector<ll>;
template <class T>
using vc = vector<T>;
template <class T>
using vvc = vector<vc<T>>;
template <class T>
using vvvc = vector<vvc<T>>;
template <class T>
using vvvvc = vector<vvvc<T>>;
template <class T>
using vvvvvc = vector<vvvvc<T>>;
template <class T>
using pq = priority_queue<T>;
template <class T>
using pqg = priority_queue<T, vector<T>, greater<T>>;

#define vv(type, name, h, ...) vector<vector<type>> name(h, vector<type>(__VA_ARGS__))
#define vvv(type, name, h, w, ...) vector<vector<vector<type>>> name(h, vector<vector<type>>(w, vector<type>(__VA_ARGS__)))
#define vvvv(type, name, a, b, c, ...) \
  vector<vector<vector<vector<type>>>> name(a, vector<vector<vector<type>>>(b, vector<vector<type>>(c, vector<type>(__VA_ARGS__))))

// https://trap.jp/post/1224/
#define FOR1(a) for (ll _ = 0; _ < ll(a); ++_)
#define FOR2(i, a) for (ll i = 0; i < ll(a); ++i)
#define FOR3(i, a, b) for (ll i = a; i < ll(b); ++i)
#define FOR4(i, a, b, c) for (ll i = a; i < ll(b); i += (c))
#define FOR1_R(a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR2_R(i, a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR3_R(i, a, b) for (ll i = (b)-1; i >= ll(a); --i)
#define overload4(a, b, c, d, e, ...) e
#define overload3(a, b, c, d, ...) d
#define FOR(...) overload4(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)(__VA_ARGS__)
#define FOR_R(...) overload3(__VA_ARGS__, FOR3_R, FOR2_R, FOR1_R)(__VA_ARGS__)

#define FOR_subset(t, s) for (ll t = (s); t >= 0; t = (t == 0 ? -1 : (t - 1) & (s)))
#define all(x) x.begin(), x.end()
#define len(x) ll(x.size())
#define elif else if

#define eb emplace_back
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second

#define stoi stoll

int popcnt(int x) { return __builtin_popcount(x); }
int popcnt(u32 x) { return __builtin_popcount(x); }
int popcnt(ll x) { return __builtin_popcountll(x); }
int popcnt(u64 x) { return __builtin_popcountll(x); }
int popcnt_mod_2(int x) { return __builtin_parity(x); }
int popcnt_mod_2(u32 x) { return __builtin_parity(x); }
int popcnt_mod_2(ll x) { return __builtin_parityll(x); }
int popcnt_mod_2(u64 x) { return __builtin_parityll(x); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 1, 2)
int topbit(int x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(u32 x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(ll x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
int topbit(u64 x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 0, 2)
int lowbit(int x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(u32 x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(ll x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
int lowbit(u64 x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }

template <typename T>
T floor(T a, T b) {
  return a / b - (a % b && (a ^ b) < 0);
}
template <typename T>
T ceil(T x, T y) {
  return floor(x + y - 1, y);
}
template <typename T>
T bmod(T x, T y) {
  return x - y * floor(x, y);
}
template <typename T>
pair<T, T> divmod(T x, T y) {
  T q = floor(x, y);
  return {q, x - q * y};
}

template <typename T, typename U>
T SUM(const vector<U> &A) {
  T sm = 0;
  for (auto &&a: A) sm += a;
  return sm;
}

#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define UNIQUE(x) sort(all(x)), x.erase(unique(all(x)), x.end()), x.shrink_to_fit()

template <typename T>
T POP(deque<T> &que) {
  T a = que.front();
  que.pop_front();
  return a;
}
template <typename T>
T POP(pq<T> &que) {
  T a = que.top();
  que.pop();
  return a;
}
template <typename T>
T POP(pqg<T> &que) {
  T a = que.top();
  que.pop();
  return a;
}
template <typename T>
T POP(vc<T> &que) {
  T a = que.back();
  que.pop_back();
  return a;
}

template <typename F>
ll binary_search(F check, ll ok, ll ng, bool check_ok = true) {
  if (check_ok) assert(check(ok));
  while (abs(ok - ng) > 1) {
    auto x = (ng + ok) / 2;
    (check(x) ? ok : ng) = x;
  }
  return ok;
}
template <typename F>
double binary_search_real(F check, double ok, double ng, int iter = 100) {
  FOR(iter) {
    double x = (ok + ng) / 2;
    (check(x) ? ok : ng) = x;
  }
  return (ok + ng) / 2;
}

template <class T, class S>
inline bool chmax(T &a, const S &b) {
  return (a < b ? a = b, 1 : 0);
}
template <class T, class S>
inline bool chmin(T &a, const S &b) {
  return (a > b ? a = b, 1 : 0);
}

// ? は -1
vc<int> s_to_vi(const string &S, char first_char) {
  vc<int> A(S.size());
  FOR(i, S.size()) { A[i] = (S[i] != '?' ? S[i] - first_char : -1); }
  return A;
}

template <typename T, typename U>
vector<T> cumsum(vector<U> &A, int off = 1) {
  int N = A.size();
  vector<T> B(N + 1);
  FOR(i, N) { B[i + 1] = B[i] + A[i]; }
  if (off == 0) B.erase(B.begin());
  return B;
}

// stable sort
template <typename T>
vector<int> argsort(const vector<T> &A) {
  vector<int> ids(len(A));
  iota(all(ids), 0);
  sort(all(ids), [&](int i, int j) { return (A[i] == A[j] ? i < j : A[i] < A[j]); });
  return ids;
}

// A[I[0]], A[I[1]], ...
template <typename T>
vc<T> rearrange(const vc<T> &A, const vc<int> &I) {
  vc<T> B(len(I));
  FOR(i, len(I)) B[i] = A[I[i]];
  return B;
}

template <typename T, typename... Vectors>
void concat(vc<T> &first, const Vectors &... others) {
  vc<T> &res = first;
  (res.insert(res.end(), others.begin(), others.end()), ...);
}
#endif
#line 1 "/home/maspy/compro/library/other/io2.hpp"
#define INT(...)   \
  int __VA_ARGS__; \
  IN(__VA_ARGS__)
#define LL(...)   \
  ll __VA_ARGS__; \
  IN(__VA_ARGS__)
#define STR(...)      \
  string __VA_ARGS__; \
  IN(__VA_ARGS__)
#define CHR(...)    \
  char __VA_ARGS__; \
  IN(__VA_ARGS__)
#define DBL(...)           \
  long double __VA_ARGS__; \
  IN(__VA_ARGS__)

#define VEC(type, name, size) \
  vector<type> name(size);    \
  read(name)
#define VV(type, name, h, w)                     \
  vector<vector<type>> name(h, vector<type>(w)); \
  read(name)

void read(int &a) { cin >> a; }
void read(long long &a) { cin >> a; }
void read(char &a) { cin >> a; }
void read(double &a) { cin >> a; }
void read(long double &a) { cin >> a; }
void read(string &a) { cin >> a; }
template <class T, class S>
void read(pair<T, S> &p) {
  read(p.first), read(p.second);
}
template <class T>
void read(vector<T> &a) {
  for (auto &i: a) read(i);
}
template <class T>
void read(T &a) {
  cin >> a;
}
void IN() {}
template <class Head, class... Tail>
void IN(Head &head, Tail &... tail) {
  read(head);
  IN(tail...);
}

template <typename T, typename U>
ostream &operator<<(ostream &os, const pair<T, U> &A) {
  os << A.fi << " " << A.se;
  return os;
}

template <typename T>
ostream &operator<<(ostream &os, const vector<T> &A) {
  for (size_t i = 0; i < A.size(); i++) {
    if (i) os << " ";
    os << A[i];
  }
  return os;
}

// chatgpt helped me
class CoutInitializer {
public:
  CoutInitializer() { std::cout << std::fixed << std::setprecision(15); }
};
static CoutInitializer cout_initializer;

void print() {
  cout << "\n";
  cout.flush();
}

template <class Head, class... Tail>
void print(Head &&head, Tail &&... tail) {
  cout << head;
  if (sizeof...(Tail)) cout << " ";
  print(forward<Tail>(tail)...);
}

void YES(bool t = 1) { print(t ? "YES" : "NO"); }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { print(t ? "Yes" : "No"); }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { print(t ? "yes" : "no"); }
void no(bool t = 1) { yes(!t); }
#line 2 "/home/maspy/compro/library/random/base.hpp"

u64 RNG_64() {
  static u64 x_ = u64(chrono::duration_cast<chrono::nanoseconds>(chrono::high_resolution_clock::now().time_since_epoch()).count()) * 10150724397891781847ULL;
  x_ ^= x_ << 7;
  return x_ ^= x_ >> 9;
}

u64 RNG(u64 lim) { return RNG_64() % lim; }

ll RNG(ll l, ll r) { return l + RNG_64() % (r - l); }
#line 4 "main.cpp"

vc<string> dat;
const int N = 960;
u8 same[N][N];

void init() {
  string S = "RKRBBQNN";
  sort(all(S));
  do {
    map<char, vc<int>> MP;
    FOR(i, len(S)) MP[S[i]].eb(i);
    if (!(MP['R'][0] < MP['K'][0] && MP['K'][0] < MP['R'][1])) continue;
    if ((MP['B'][0] + MP['B'][1]) % 2 == 0) continue;
    dat.eb(S);
  } while (next_permutation(all(S)));
  FOR(i, N) FOR(j, N) { FOR(k, len(S)) same[i][j] += (dat[i][k] == dat[j][k]); }
}

map<vc<int>, int> MP;

void solve() {
  vc<int> I;
  FOR(i, 960) I.eb(i);
  vc<int> worst(N);

  vc<int> history;

#ifdef LOCAL
  string god = dat[RNG(0, N)];
#endif
  int QLE = 0;
  while (1) {
    int p = [&]() {
      if (MP.count(history)) { return MP[history]; }
      if (history.empty()) return 378;
      FOR(i, N) {
        vc<int> F(9);
        for (auto& j: I) { F[same[i][j]]++; }
        worst[i] = MAX(F);
      }
      vc<int> cand;
      int mi = infty<int>;
      for (auto& i: I) {
        if (chmin(mi, worst[i])) { cand.clear(); }
        if (mi == worst[i]) cand.eb(i);
      }
      if (history == vc<int>({2, 1, 1})) {
        return 82;
        print(history, cand);
        assert(0);
      }
      if (history == vc<int>({2, 2})) {
        return 876;
        print(history, cand);
        assert(0);
      }
      if (history == vc<int>({1, 1})) {
        return 859;
        print(history, cand);
        // assert(0);
      }
      return cand[0];
    }();
    if (len(I) == 1) { p = I[0]; }
    MP[history] = p;
#ifdef LOCAL
    int n = 0;
    string out = dat[p];
    FOR(i, 8) n += (out[i] == god[i]);
    print(len(I), "n=", n);
#else
    print(dat[p]);
    INT(n);
#endif
    ++QLE;
    history.eb(n);
    if (n == 8) {
#ifdef LOCAL
      print("god=", god);
      print("history=", history);
      assert(QLE <= 6);
#endif
      return;
    }
    vc<int> nxt;
    for (auto& i: I)
      if (same[p][i] == n) nxt.eb(i);
    swap(nxt, I);
  }
}

signed main() {
  init();
  // FOR(10000) { solve(); }
  // for (auto& [x, y]: MP) {
  //   if (len(x) <= 1) print(x, y);
  // }
  // return 0;

  while (1) {
    STR(S);
    if (S == "END") break;
    INT(t);
    solve();
  }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 8ms
memory: 4552kb

input:

GAME 1
1
2
2
1
2
8
END

output:

NRBBNKQR
BNRKQBNR
RNBQKRNB
BRNQKBRN
QNRNBKRB
RKRBBQNN

result:

ok (c) correct after 1 tests, max moves 6 (1 test case)

Test #2:

score: 0
Accepted
time: 9ms
memory: 4500kb

input:

GAME 1
1
2
2
1
2
8
GAME 2
2
1
0
1
2
8
GAME 3
1
2
2
0
3
8
GAME 4
1
2
1
1
3
8
GAME 5
2
2
1
1
4
8
GAME 6
2
1
2
1
3
8
GAME 7
0
2
3
4
3
8
GAME 8
1
2
1
0
3
8
GAME 9
0
3
1
2
8
GAME 10
0
3
3
3
8
GAME 11
0
5
3
2
8
GAME 12
1
1
2
2
3
8
GAME 13
1
2
2
3
4
8
GAME 14
0
4
3
4
8
GAME 15
1
2
1
0
1
8
GAME 16
1
1
5
8
G...

output:

NRBBNKQR
BNRKQBNR
RNBQKRNB
BRNQKBRN
QNRNBKRB
RKRBBQNN
NRBBNKQR
RBBNKQNR
QRKNNRBB
NBNRBKRQ
BQNBRNKR
RKRBBNQN
NRBBNKQR
BNRKQBNR
RNBQKRNB
BRNQKBRN
RBKNBQNR
RKRBBNNQ
NRBBNKQR
BNRKQBNR
RNBQKRNB
BBNQRNKR
QBRKNRBN
RKRBQNBN
NRBBNKQR
RBBNKQNR
RNNKBBQR
NRKNBQRB
RKBBQNRN
RKRBNQBN
NRBBNKQR
RBBNKQNR
QRKNNRBB
NRK...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #3:

score: 0
Accepted
time: 8ms
memory: 4516kb

input:

GAME 1
2
3
2
2
3
8
GAME 2
2
4
2
8
GAME 3
3
0
5
2
8
GAME 4
3
0
2
2
8
GAME 5
2
2
3
1
2
8
GAME 6
3
0
3
2
4
8
GAME 7
1
3
0
2
4
8
GAME 8
1
3
0
3
8
GAME 9
2
3
4
1
8
GAME 10
2
3
5
4
8
GAME 11
2
2
4
3
8
GAME 12
1
3
0
4
8
GAME 13
0
2
3
8
GAME 14
1
0
1
4
8
GAME 15
0
1
2
4
1
8
GAME 16
0
2
2
2
2
8
GAME 17
1
0
3...

output:

NRBBNKQR
RBBNKQNR
RKBNNBRQ
BRKNQBNR
RBKQNNBR
RKQBBNNR
NRBBNKQR
RBBNKQNR
BBRNNQKR
RKNBBQNR
NRBBNKQR
NRBQKBRN
RBNNBKQR
RBQNNKBR
RKNBBNQR
NRBBNKQR
NRBQKBRN
RBNNBKQR
BNRBQKNR
RKQBNNBR
NRBBNKQR
RBBNKQNR
RNNKBBQR
BQRKNBNR
NBNQBRKR
RKNBQNBR
NRBBNKQR
NRBQKBRN
RBNNBKQR
BBQRNKNR
QNNBRKBR
RKNBNQBR
NRBBNKQR
BNR...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #4:

score: 0
Accepted
time: 15ms
memory: 4572kb

input:

GAME 1
1
2
1
0
8
GAME 2
3
4
3
5
8
GAME 3
2
1
2
8
GAME 4
1
1
2
4
8
GAME 5
2
2
1
6
8
GAME 6
3
2
3
1
2
8
GAME 7
2
0
5
5
8
GAME 8
2
0
6
5
8
GAME 9
3
3
0
2
8
GAME 10
2
0
3
3
8
GAME 11
2
0
4
1
5
8
GAME 12
3
2
3
2
8
GAME 13
2
2
0
8
GAME 14
3
2
5
8
GAME 15
2
1
2
4
8
GAME 16
1
3
1
1
8
GAME 17
2
1
3
4
8
GAME ...

output:

NRBBNKQR
BNRKQBNR
RNBQKRNB
BBNQRNKR
QRKRBBNN
NRBBNKQR
NRBQKBRN
NBBRQKRN
NRKBBQRN
NRKRBBQN
NRBBNKQR
RBBNKQNR
QRKNNRBB
NRKRBBNQ
NRBBNKQR
BNRKQBNR
RNKQNRBB
QNBRKNRB
QRKRBNNB
NRBBNKQR
RBBNKQNR
RNNKBBQR
NRKNBQRB
NRKRBQNB
NRBBNKQR
NRBQKBRN
BRKBNNRQ
BRNBKQNR
NNRBBKRQ
NRKRBNQB
NRBBNKQR
RBBNKQNR
NRKQRBBN
BRK...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #5:

score: 0
Accepted
time: 11ms
memory: 4452kb

input:

GAME 1
0
4
3
3
8
GAME 2
0
3
4
2
8
GAME 3
0
4
4
3
8
GAME 4
0
5
5
3
8
GAME 5
0
4
4
4
8
GAME 6
0
6
4
6
8
GAME 7
1
3
1
3
8
GAME 8
3
2
1
2
2
8
GAME 9
2
4
2
2
8
GAME 10
0
1
0
6
8
GAME 11
1
1
2
0
4
8
GAME 12
0
2
3
4
8
GAME 13
1
1
4
1
6
8
GAME 14
0
3
2
1
8
GAME 15
1
1
4
1
8
GAME 16
2
3
3
1
1
8
GAME 17
1
4
2...

output:

NRBBNKQR
RKNNRQBB
RBKNRNBQ
RKNNBBRQ
RQNKRBBN
NRBBNKQR
RKNNRQBB
QNRKRNBB
QNNRKRBB
RNQKRBBN
NRBBNKQR
RKNNRQBB
RBKNRNBQ
RNKNQRBB
RNNKRBBQ
NRBBNKQR
RKNNRQBB
RKNRQNBB
RKNRBQNB
RQNKRNBB
NRBBNKQR
RKNNRQBB
RBKNRNBQ
RNKNQRBB
RNQKRNBB
NRBBNKQR
RKNNRQBB
RKNNRBBQ
RNKNRQBB
RNNKRQBB
NRBBNKQR
BNRKQBNR
BQRKNNRB
BBN...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #6:

score: 0
Accepted
time: 15ms
memory: 4792kb

input:

GAME 1
3
5
2
8
GAME 2
3
6
8
GAME 3
4
1
3
8
GAME 4
3
3
2
3
4
8
GAME 5
3
4
4
4
8
GAME 6
4
1
4
5
8
GAME 7
1
2
0
3
8
GAME 8
2
0
4
4
8
GAME 9
2
0
3
2
8
GAME 10
1
1
1
4
3
8
GAME 11
2
0
2
3
1
8
GAME 12
2
1
2
3
8
GAME 13
3
2
3
4
8
GAME 14
2
2
4
8
GAME 15
4
4
8
GAME 16
4
3
2
2
8
GAME 17
4
4
4
2
8
GAME 18
6
4...

output:

NRBBNKQR
NRBQKBRN
NRBQKRNB
QRBKNBRN
NRBBNKQR
NRBQKBRN
NRBKQBRN
NRBBNKQR
BRNBQKNR
NBBRNQKR
NRBKNBRQ
NRBBNKQR
NRBQKBRN
RNBBQKRN
NRQNBKRB
NRBKQRNB
QRBKNNRB
NRBBNKQR
NRBQKBRN
NBBRQKRN
NNBQRKRB
NRBKQNRB
NRBBNKQR
BRNBQKNR
NBBRNQKR
NQBRNKRB
NRBKNQRB
NRBBNKQR
BNRKQBNR
RNBQKRNB
NBRKBNRQ
QRNKBBRN
NRBBNKQR
RBB...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #7:

score: 0
Accepted
time: 15ms
memory: 4776kb

input:

GAME 1
1
1
3
8
GAME 2
2
5
3
8
GAME 3
1
1
2
2
4
8
GAME 4
0
3
1
6
8
GAME 5
0
3
1
5
8
GAME 6
0
4
5
8
GAME 7
2
4
0
6
8
GAME 8
3
3
5
3
8
GAME 9
2
4
0
8
GAME 10
1
1
3
5
2
8
GAME 11
1
2
8
GAME 12
2
4
1
3
4
8
GAME 13
1
0
4
4
2
8
GAME 14
1
1
4
2
6
8
GAME 15
1
1
4
2
8
GAME 16
0
5
4
5
8
GAME 17
0
4
3
2
8
GAME ...

output:

NRBBNKQR
BNRKQBNR
RNKQNRBB
RBBQKRNN
NRBBNKQR
RBBNKQNR
RBBKQNNR
RBBNKRQN
NRBBNKQR
BNRKQBNR
RNKQNRBB
QNBRKNRB
RBQNKNBR
RBBNKRNQ
NRBBNKQR
RKNNRQBB
QNRKRNBB
RBKNQRBN
RBQNKRBN
NRBBNKQR
RKNNRQBB
QNRKRNBB
RBKNQRBN
RBNQKRBN
NRBBNKQR
RKNNRQBB
RBKNRNBQ
RBNNKRBQ
NRBBNKQR
RBBNKQNR
BBRNNQKR
RNBBKRNQ
RQBBKRNN
NRB...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #8:

score: 0
Accepted
time: 7ms
memory: 4572kb

input:

GAME 1
3
2
3
5
8
GAME 2
4
3
4
8
GAME 3
4
4
3
6
8
GAME 4
2
3
2
4
4
8
GAME 5
3
4
1
4
8
GAME 6
3
5
4
8
GAME 7
0
0
6
4
8
GAME 8
1
2
2
3
2
8
GAME 9
0
1
3
5
8
GAME 10
1
3
3
3
4
8
GAME 11
2
1
1
2
8
GAME 12
1
4
3
8
GAME 13
0
2
1
2
8
GAME 14
0
1
3
8
GAME 15
1
3
3
3
8
GAME 16
0
2
1
3
8
GAME 17
1
1
3
5
8
GAME ...

output:

NRBBNKQR
NRBQKBRN
BRKBNNRQ
BRNBKQNR
QRNBKNBR
NRBBNKQR
BRNBQKNR
RNQBNKBR
NRQBKNBR
NRBBNKQR
BRNBQKNR
BRNKNBQR
NRNBBQKR
NRNBKQBR
NRBBNKQR
RBBNKQNR
RKBNNBRQ
BRKNQBNR
BNRNKBQR
QRNNKBBR
NRBBNKQR
NRBQKBRN
NBBRQKRN
NRNQBBKR
NRQNKBBR
NRBBNKQR
NRBQKBRN
NRBQKRNB
NRNQKBBR
NRBBNKQR
RKNNRQBB
BBQRKRNN
BBQRKNRN
BBR...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #9:

score: 0
Accepted
time: 15ms
memory: 4572kb

input:

GAME 1
2
5
5
8
GAME 2
3
3
1
4
8
GAME 3
4
1
5
8
GAME 4
1
1
1
2
2
8
GAME 5
2
3
0
3
3
8
GAME 6
2
4
3
1
2
8
GAME 7
2
4
1
8
GAME 8
3
4
3
1
8
GAME 9
4
1
4
3
8
GAME 10
1
3
0
8
GAME 11
2
2
3
3
3
8
GAME 12
2
2
3
2
2
8
GAME 13
3
4
5
3
8
GAME 14
2
4
2
1
4
8
GAME 15
3
2
3
0
8
GAME 16
1
0
1
5
8
GAME 17
1
0
3
2
8...

output:

NRBBNKQR
RBBNKQNR
RBBKQNNR
QBBRKNNR
NRBBNKQR
NRBQKBRN
RNBBQKRN
NBBQRNKR
NBBRKQNR
NRBBNKQR
BRNBQKNR
NBBRNQKR
NBBRKNQR
NRBBNKQR
BNRKQBNR
RNKQNRBB
BRQNKNRB
BBNQRKRN
QBNRKNBR
NRBBNKQR
RBBNKQNR
RKBNNBRQ
BBNRQKNR
BQRBKNNR
NBQRKNBR
NRBBNKQR
RBBNKQNR
BBRNNQKR
RKBNNQRB
BRQNKBNR
NBNRKQBR
NRBBNKQR
RBBNKQNR
BBR...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #10:

score: 0
Accepted
time: 11ms
memory: 4492kb

input:

GAME 1
3
1
2
3
8
GAME 2
2
4
5
5
8
GAME 3
4
3
3
1
8
GAME 4
4
5
5
8
GAME 5
3
0
2
8
GAME 6
5
8
GAME 7
2
4
4
5
8
GAME 8
3
2
0
3
8
GAME 9
4
2
2
4
8
GAME 10
3
0
4
6
8
GAME 11
4
2
2
6
8
GAME 12
3
1
3
2
2
8
GAME 13
3
0
3
3
8
GAME 14
4
4
1
5
8
GAME 15
5
6
8
GAME 16
4
3
6
5
8
GAME 17
5
5
3
8
GAME 18
4
4
1
8
G...

output:

NRBBNKQR
NRBQKBRN
NNRBBQKR
NBQNRKBR
BBRQNKNR
NRBBNKQR
RBBNKQNR
BBRNNQKR
BBRNKNQR
BBRNQKNR
NRBBNKQR
BRNBQKNR
RNQBNKBR
NNBBQRKR
BBRNNKQR
NRBBNKQR
BRNBQKNR
BRKBNQNR
BQRBNKNR
NRBBNKQR
NRBQKBRN
RBNNBKQR
BNRBQKNR
NRBBNKQR
BNRBNKQR
NRBBNKQR
RBBNKQNR
BBRNNQKR
BBQNRKNR
QBRNBKNR
NRBBNKQR
NRBQKBRN
BRKBNNRQ
NBB...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Test #11:

score: 0
Accepted
time: 15ms
memory: 4704kb

input:

GAME 1
2
2
4
2
1
8
GAME 2
2
2
4
1
3
8
GAME 3
2
3
1
4
4
8
GAME 4
1
2
1
3
2
8
GAME 5
1
3
0
3
4
8
GAME 6
1
3
0
4
4
8
GAME 7
4
4
4
8
GAME 8
3
1
3
2
8
GAME 9
4
5
6
8
GAME 10
3
2
3
3
8
GAME 11
3
3
0
5
8
GAME 12
2
2
3
3
8
GAME 13
5
3
4
3
8
GAME 14
5
2
5
4
8
GAME 15
6
5
4
5
8
GAME 16
4
2
1
4
8
GAME 17
5
2
4...

output:

NRBBNKQR
RBBNKQNR
RNNKBBQR
BRNKQBNR
RNBKNBRQ
RQNBBNKR
NRBBNKQR
RBBNKQNR
RNNKBBQR
BRNKQBNR
RNBKRNQB
RNQBBNKR
NRBBNKQR
RBBNKQNR
RKBNNBRQ
RQNBKNBR
RBNKBNQR
RNNBBQKR
NRBBNKQR
BNRKQBNR
RNBQKRNB
BBNQRNKR
QBRNKNBR
RQNNBBKR
NRBBNKQR
BNRKQBNR
BQRKNNRB
QNNRKBBR
RKNQBBNR
RNQNBBKR
NRBBNKQR
BNRKQBNR
BQRKNNRB
QNN...

result:

ok (c) correct after 96 tests, max moves 6 (96 test cases)

Extra Test:

score: 0
Extra Test Passed