QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#175737#7179. Fischer's Chess Guessing GameikefumyAC ✓363ms3656kbC++203.8kb2023-09-10 22:14:402023-09-10 22:14:41

Judging History

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

  • [2023-09-10 22:14:41]
  • 评测
  • 测评结果:AC
  • 用时:363ms
  • 内存:3656kb
  • [2023-09-10 22:14:40]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define db double
#define pii pair<int,int>
#define pli pair<ll,int>
#define pil pair<int,ll>
#define pll pair<ll,ll>
#define ti3 tuple<int,int,int>
#define int128 __int128_t
#define pii128 pair<int128,int128>
const int inf = 1 << 30;
const ll linf = 1e18;
const ll mod = 1e9 + 7;
const db EPS = 1e-10;
const db pi = acos(-1);
template<class T> bool chmin(T& x, T y){
    if(x > y) {
        x = y;
        return true;
    } else return false;
}
template<class T> bool chmax(T& x, T y){
    if(x < y) {
        x = y;
        return true;
    } else return false;
}

// overload macro
#define CAT( A, B ) A ## B
#define SELECT( NAME, NUM ) CAT( NAME, NUM )

#define GET_COUNT( _1, _2, _3, _4, _5, _6 /* ad nauseam */, COUNT, ... ) COUNT
#define VA_SIZE( ... ) GET_COUNT( __VA_ARGS__, 6, 5, 4, 3, 2, 1 )

#define VA_SELECT( NAME, ... ) SELECT( NAME, VA_SIZE(__VA_ARGS__) )(__VA_ARGS__)

// rep(overload)
#define rep( ... ) VA_SELECT(rep, __VA_ARGS__)
#define rep2(i, n) for (int i = 0; i < int(n); i++)
#define rep3(i, a, b) for (int i = a; i < int(b); i++)
#define rep4(i, a, b, c) for (int i = a; i < int(b); i += c)

// repll(overload)
#define repll( ... ) VA_SELECT(repll, __VA_ARGS__)
#define repll2(i, n) for (ll i = 0; i < ll(n); i++)
#define repll3(i, a, b) for (ll i = a; i < ll(b); i++)
#define repll4(i, a, b, c) for (ll i = a; i < ll(b); i += c)

// rrep(overload)
#define rrep( ... ) VA_SELECT(rrep, __VA_ARGS__)
#define rrep2(i, n) for (int i = n - 1; i >= 0; i--)
#define rrep3(i, a, b) for (int i = b - 1; i >= a; i--)
#define rrep4(i, a, b, c) for (int i = b - 1; i >= a; i -= c)

// rrepll(overload)
#define rrepll( ... ) VA_SELECT(rrepll, __VA_ARGS__)
#define rrepll2(i, n) for (ll i = n - 1; i >= 0ll; i--)
#define rrepll3(i, a, b) for (ll i = b - 1; i >= ll(a); i--)
#define rrepll4(i, a, b, c) for (ll i = b - 1; i >= ll(a); i -= c)

// for_earh
#define fore(e, v) for (auto&& e : v)

// vector
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
    
vector<string> narabi;

void solve() {
    vector<string> kouho = narabi;
    int mth;
    while((int)kouho.size() > 1) {
        int mx = inf;
        string op;
        fore(na, narabi) {
            vector<int> cnt(9, 0);
            fore(ko, kouho) {
                int res = 0;
                rep(i, 8) res += ko[i] == na[i];
                cnt[res]++;
            }
            if (*max_element(all(cnt)) < mx) {
                mx = *max_element(all(cnt));
                op = na;
            }
        }
        cout << op << endl;
        cout.flush();
        cin >> mth;
        if (mth == 8) return;
        vector<string> pre = kouho;
        kouho.clear();
        fore(ko, pre) {
            int res = 0;
            rep(i, 8) res += ko[i] == op[i];
            if (res == mth) kouho.push_back(ko);
        }
    }
    cout << kouho[0] << endl;
    cout.flush();
    cin >> mth;
}

int num[26];
int main() {
    cin.tie(nullptr);
    ios_base::sync_with_stdio(false);
    cout << fixed << setprecision(20);
    string W = "RRKBBNNQ";
    num['R' - 'A'] = 0;
    num['B' - 'A'] = 1;
    num['N' - 'A'] = 2;
    num['K' - 'A'] = 3;
    num['Q' - 'A'] = 4;
    sort(all(W));

    do {
        vector<int> zahyo[5];
        rep(i, 8) {
            zahyo[num[W[i] - 'A']].push_back(i);
        }
        if (zahyo[0][0] < zahyo[3][0] && zahyo[3][0] < zahyo[0][1] && (zahyo[1][0] + zahyo[1][1]) % 2) narabi.push_back(W);
    } while(next_permutation(all(W)));

    string S;
    while (true) {
        cin >> S;
        if (S == "END") break;
        int tmp;
        cin >> tmp;
        solve();
    }
}

详细

Test #1:

score: 100
Accepted
time: 6ms
memory: 3564kb

input:

GAME 1
1
0
2
4
8
END

output:

NRBBNKQR
BRNNKBQR
NBRKNQBR
QBRKBRNN
RKRBBQNN

result:

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

Test #2:

score: 0
Accepted
time: 359ms
memory: 3612kb

input:

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

output:

NRBBNKQR
BRNNKBQR
NBRKNQBR
QBRKBRNN
RKRBBQNN
NRBBNKQR
RNBBQKRN
RQKBNNBR
BBRNNQKR
BBNNRKQR
RKRBBNQN
NRBBNKQR
BRNNKBQR
NBRKNQBR
BNRKQRNB
RKRBBNNQ
NRBBNKQR
BRNNKBQR
NBRKNQBR
QBRKBRNN
BBNNQRKR
RKRBQNBN
NRBBNKQR
RNBBQKRN
RQKBNNBR
QNRBBKNR
RKRBNQBN
NRBBNKQR
RNBBQKRN
QNRBKNBR
BBNNQRKR
BBNNRKQR
RKRBNNBQ
NRB...

result:

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

Test #3:

score: 0
Accepted
time: 343ms
memory: 3656kb

input:

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

output:

NRBBNKQR
RNBBQKRN
QNRBKNBR
BNNQRBKR
BBQNNRKR
RKQBBNNR
NRBBNKQR
RNBBQKRN
QNRBKNBR
RBNNBQKR
BBNNQRKR
RKNBBQNR
NRBBNKQR
RBBNQKRN
BQNBRNKR
BRKRNNQB
RKNBBNQR
NRBBNKQR
RBBNQKRN
BQNBRNKR
BBRNKNRQ
BBNNRKQR
RKQBNNBR
NRBBNKQR
RNBBQKRN
RQKBNNBR
BBNNRKQR
RKNBQNBR
NRBBNKQR
RBBNQKRN
BQNBRNKR
BBRNKNRQ
BBNQRKNR
RKN...

result:

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

Test #4:

score: 0
Accepted
time: 363ms
memory: 3560kb

input:

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

output:

NRBBNKQR
BRNNKBQR
BNRBKRQN
BRKQNBNR
BBNNQRKR
QRKRBBNN
NRBBNKQR
RBBNQKRN
BQNBRNKR
BNQRKRNB
NRKRBBQN
NRBBNKQR
RNBBQKRN
BRKQNRNB
BBQNNRKR
NRKRBBNQ
NRBBNKQR
BRNNKBQR
RKQNRBBN
BBRKNNRQ
BBNNQRKR
QRKRBNNB
NRBBNKQR
RNBBQKRN
BRKQNRNB
BBNQRNKR
BBNNQRKR
NRKRBQNB
NRBBNKQR
RBBNQKRN
BNRBQNKR
BBNQNRKR
NRKRBNQB
NRB...

result:

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

Test #5:

score: 0
Accepted
time: 356ms
memory: 3572kb

input:

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

output:

NRBBNKQR
RKNNRQBB
QNRKRBBN
BBNNRKRQ
RQNKRBBN
NRBBNKQR
RKNNRQBB
BQRNKRNB
NRKQRNBB
RNQKRBBN
NRBBNKQR
RKNNRQBB
QNRKRBBN
BBNNRKRQ
RNNKRBBQ
NRBBNKQR
RKNNRQBB
BBNRKQRN
BBNQRNKR
RQNKRNBB
NRBBNKQR
RKNNRQBB
QNRKRBBN
BBRKQNRN
RNQKRNBB
NRBBNKQR
RKNNRQBB
BNNRKQRB
BBNNQRKR
RNNKRQBB
NRBBNKQR
BRNNKBQR
NBRKNQBR
QBR...

result:

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

Test #6:

score: 0
Accepted
time: 335ms
memory: 3588kb

input:

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

output:

NRBBNKQR
RBBNQKRN
BBQRNKNR
BBNRQKRN
BBNNRKQR
QRBKNBRN
NRBBNKQR
RBBNQKRN
BBNNRQKR
BBNQRKNR
NRBKQBRN
NRBBNKQR
BNRBNKRQ
BNNRQBKR
BNRBQKNR
NRBKNBRQ
NRBBNKQR
RBBNQKRN
BBNQRKNR
BQRKNRNB
QRBKNNRB
NRBBNKQR
RBBNQKRN
BBQRNKNR
BBRNKNRQ
BBNNQRKR
NRBKQNRB
NRBBNKQR
BNRBNKRQ
BBNNRKQR
BBNQRKRN
NRBKNQRB
NRBBNKQR
BRN...

result:

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

Test #7:

score: 0
Accepted
time: 340ms
memory: 3536kb

input:

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

output:

NRBBNKQR
BRNNKBQR
RKQNRBBN
BBRNQKRN
BBNNRKQR
RBBQKRNN
NRBBNKQR
RNBBQKRN
RQKBNNBR
BBNRNKRQ
BBNNQRKR
RBBNKRQN
NRBBNKQR
BRNNKBQR
BNRBKRQN
BBNNRKRQ
BBNQNRKR
RBBNKRNQ
NRBBNKQR
RKNNRQBB
BQRNKRNB
NQNRKRBB
RBQNKRBN
NRBBNKQR
RKNNRQBB
BQRNKRNB
QRNKBNRB
RBNQKRBN
NRBBNKQR
RKNNRQBB
QNRKRBBN
BBNNQRKR
RBNNKRBQ
NRB...

result:

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

Test #8:

score: 0
Accepted
time: 348ms
memory: 3644kb

input:

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

output:

NRBBNKQR
RBBNQKRN
BNRBQNKR
BQNBNRKR
QRNBKNBR
NRBBNKQR
BNRBNKRQ
NQBRNBKR
BBNRKQNR
NRQBKNBR
NRBBNKQR
BNRBNKRQ
NQBRNBKR
BBNRKQNR
NRNBKQBR
NRBBNKQR
RNBBQKRN
BRKQNRNB
BBRQKNNR
BBNNQRKR
QRNNKBBR
NRBBNKQR
RBBNQKRN
BQNBRNKR
BBRNNQKR
BBNNQRKR
NRQNKBBR
NRBBNKQR
RBBNQKRN
BNRBQNKR
BBNQNRKR
BBNQRKNR
NRNQKBBR
NRB...

result:

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

Test #9:

score: 0
Accepted
time: 332ms
memory: 3552kb

input:

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

output:

NRBBNKQR
RNBBQKRN
NRNKBRQB
BBRKRNNQ
BBNNQRKR
QBBRKNNR
NRBBNKQR
RBBNQKRN
BBNQRKNR
BBNRQKRN
NBBRKQNR
NRBBNKQR
BNRBNKRQ
BRNKQBNR
BBNNRKQR
NBBRKNQR
NRBBNKQR
BRNNKBQR
RBQNBNKR
BBNQRKNR
BBNNQRKR
QBNRKNBR
NRBBNKQR
RNBBQKRN
BRKQNRNB
BQRNKBNR
BBNNQRKR
NBQRKNBR
NRBBNKQR
RNBBQKRN
BRKQNRNB
BQRNKBNR
BBNNQRKR
NBN...

result:

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

Test #10:

score: 0
Accepted
time: 339ms
memory: 3564kb

input:

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

output:

NRBBNKQR
RBBNQKRN
BBNQRKNR
BBNNRKQR
BBRQNKNR
NRBBNKQR
RNBBQKRN
QNRBKNBR
RBNNBQKR
BBNNQRKR
BBRNQKNR
NRBBNKQR
BNRBNKRQ
BBNRKNRQ
BBNNQRKR
BBRNNKQR
NRBBNKQR
BNRBNKRQ
BBNNRKRQ
BQRBNKNR
NRBBNKQR
RBBNQKRN
BBNQRKNR
BRNBQKRN
BNRBQKNR
NRBBNKQR
BQRBNNKR
NQBBRNKR
BNRBNKQR
NRBBNKQR
RNBBQKRN
NRNKBRQB
BBNQRKNR
BBN...

result:

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

Test #11:

score: 0
Accepted
time: 345ms
memory: 3572kb

input:

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

output:

NRBBNKQR
RNBBQKRN
QNRBKNBR
BNNQRBKR
BBNNQRKR
RQNBBNKR
NRBBNKQR
RNBBQKRN
RQKBNNBR
QNRBBKNR
RNQBBNKR
NRBBNKQR
RNBBQKRN
RQKBNNBR
BBRNNQKR
BBNNQRKR
RNNBBQKR
NRBBNKQR
BRNNKBQR
QNBNRBKR
BBNQNRKR
RQNNBBKR
NRBBNKQR
BRNNKBQR
RBQNBNKR
BBNNRKQR
RNQNBBKR
NRBBNKQR
BRNNKBQR
RBQNBNKR
BBNQNRKR
BBNNRKQR
RNNQBBKR
NRB...

result:

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

Extra Test:

score: 0
Extra Test Passed