QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#174731#7179. Fischer's Chess Guessing Gameucup-team1631AC ✓99ms11140kbC++202.6kb2023-09-10 12:47:052023-09-10 12:47:06

Judging History

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

  • [2023-09-10 12:47:06]
  • 评测
  • 测评结果:AC
  • 用时:99ms
  • 内存:11140kb
  • [2023-09-10 12:47:05]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector<ll>;
using vvll = vector<vll>;
using vb = vector<bool>;
#define all(A) A.begin(),A.end()
#define rep(i, n) for (ll i = 0; i < (ll) (n); i++)
template<class T>
bool chmax(T& p, T q, bool C = 1) {
    if (C == 0 && p == q) {
        return 1;
    }
    if (p < q) {
        p = q;
        return 1;
    }
    else {
        return 0;
    }
}

template<class T>
bool chmin(T& p, T q, bool C = 1) {
    if (C == 0 && p == q) {
        return 1;
    }
    if (p > q) {
        p = q;
        return 1;
    }
    else {
        return 0;
    }
}
vector<string> HAICHI;

ll sm(string A, string B) {
    ll res = 0;
    rep(i, A.size()) {
        if (A[i] == B[i])res++;
    }
    return res;
}

int main() {

    string P = "RRRQBBNN";
    sort(all(P));
    do {
        string H = P;
        vll knight;
        ll R = 0;
        rep(i, 8) {
            if (H[i] == 'R') {
                R++;
                if (R == 2)H[i] = 'K';
            }
            if (H[i] == 'B') {
                knight.push_back(i);
            }
        }
        if ((knight[0] + knight[1]) % 2 == 1) {
            HAICHI.push_back(H);
        }
    } while (next_permutation(all(P)));

    vvll smH(960, vll(960));
    rep(i, 960)rep(j, 960)smH[i][j] = sm(HAICHI[i], HAICHI[j]);

    string SS;
    cin>>SS;
    while(SS[0]=='G') {
        
        ll gamid;
        cin>>gamid;
        vll kouho(960);
        rep(i, 960)kouho[i] = i;

        rep(t, 6) {
            vll NK;
            ll siz = kouho.size();
            ll cid = 0;
            ll MM = 1e18;
            rep(i, siz) {
                vll DP(9, 0);
                rep(j, siz) {
                    DP[smH[kouho[i]][kouho[j]]]++;
                }
                ll MA = -1;
                rep(k, 9) {
                    chmax(MA, DP[k]);
                }
                if (chmin(MM, MA))cid = kouho[i];
            }
            if(t==0)cid=43;
            string FM = HAICHI[cid];
            cout << FM<<"\n";
            fflush(stdout);
            ll sam;
            cin>>sam;
            //cin >> sam;
            //sam=sm(HAICHI[0],FM);
            //cout<<sam<<endl;
            //if(sam==0)break;
            if (sam == 8)break;
            for (auto k : kouho) {
                if (smH[cid][k] == sam)NK.push_back(k);
            }
            kouho = NK;
			if(kouho.size()==0)return 0;
			//if(t==5&&kouho.size()!=1)return 0;
            //cout<<NK.size()<<endl;
        }
        cin>>SS;
    }
    return 0;
    //return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 13ms
memory: 10844kb

input:

GAME 1
2
0
4
1
8
END

output:

BBRQNKNR
BRNNQBKR
RKBBNRNQ
RBBKNNRQ
RKRBBQNN

result:

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

Test #2:

score: 0
Accepted
time: 89ms
memory: 11100kb

input:

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

output:

BBRQNKNR
BRNNQBKR
RKBBNRNQ
RBBKNNRQ
RKRBBQNN
BBRQNKNR
NQBRKRNB
RNNBBQKR
RNKNQBBR
RBNKBNRQ
RKRBBNQN
BBRQNKNR
BRNNQBKR
RKBBNRNQ
RKRBNNBQ
RKRBBNNQ
BBRQNKNR
NQBRKRNB
RNNBBQKR
QNRKBBRN
RBKNBNRQ
RKRBQNBN
BBRQNKNR
BRNNQBKR
RKBBNRNQ
RBBKNNRQ
RNBQKRNB
RKRBNQBN
BBRQNKNR
BRNNQBKR
RKBBNRNQ
RKRBNNBQ
BBRQNKNR
BNR...

result:

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

Test #3:

score: 0
Accepted
time: 83ms
memory: 10832kb

input:

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

output:

BBRQNKNR
BRNNQBKR
NNRBKQBR
BNQBRKRN
NQRNBKRB
RKQBBNNR
BBRQNKNR
BRNNQBKR
QRKBNNBR
NNRBBQKR
RNNBBKQR
RKNBBQNR
BBRQNKNR
NQBRKRNB
RNNBBQKR
RKNBBNQR
BBRQNKNR
BRNNQBKR
NNRBKQBR
RQKBNNBR
RKQBNNBR
BBRQNKNR
NQBRKRNB
RNNBBQKR
QRNNBBKR
RBNKBQRN
RKNBQNBR
BBRQNKNR
BRNNQBKR
QRKBNNBR
BRKBNRQN
RQBBNNKR
RKNBNQBR
BBR...

result:

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

Test #4:

score: 0
Accepted
time: 86ms
memory: 10900kb

input:

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

output:

BBRQNKNR
NQBRKRNB
QRKNNRBB
NRQNBKRB
RBQNKRBN
QRKRBBNN
BBRQNKNR
NRBNKQRB
RKQNBBRN
NRQKRBBN
NRKRBBQN
BBRQNKNR
NQBRKRNB
RNKRBQNB
NRKRBBNQ
BBRQNKNR
NQBRKRNB
RNKRBQNB
QRKRBNNB
BBRQNKNR
NQBRKRNB
RQBKRNNB
NNBRQKRB
NRKRBQNB
BBRQNKNR
NRBNKQRB
NRBKRBQN
QNBRKBRN
NRKRBNQB
BBRQNKNR
NQBRKRNB
NRQNBBKR
QRNBKNBR
QRK...

result:

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

Test #5:

score: 0
Accepted
time: 86ms
memory: 10848kb

input:

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

output:

BBRQNKNR
NRBNKQRB
RNKBRNBQ
RNKRBBQN
RQNKRBBN
BBRQNKNR
NRBNKQRB
RNKBRNBQ
RNQKRBBN
BBRQNKNR
NRBNKQRB
RNKBRNBQ
RNKBQRBN
RNNKRBBQ
BBRQNKNR
NRBNKQRB
QRNKRBBN
RKNBRQBN
RQNKRNBB
BBRQNKNR
NRBNKQRB
QRNKRBBN
RNNKBBRQ
RNQKRNBB
BBRQNKNR
NRBNKQRB
RKQNBBRN
NRKBQRBN
RNNKRQBB
BBRQNKNR
BRNNQBKR
NNRBKQBR
QBBNRKRN
RBB...

result:

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

Test #6:

score: 0
Accepted
time: 95ms
memory: 10872kb

input:

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

output:

BBRQNKNR
NQBRKRNB
NRQNBBKR
QRNBKNBR
BRKNQNRB
QRBKNBRN
BBRQNKNR
NRBNKQRB
RNBNKBRQ
NRBKQBRN
BBRQNKNR
NQBRKRNB
QRKNNRBB
BRNBKRQN
NRBNQBKR
NRBKNBRQ
BBRQNKNR
NQBRKRNB
QRKNNRBB
RNQKNRBB
QRBKNNRB
BBRQNKNR
NRBNKQRB
NRBBKNRQ
NQBRKNRB
NRBKQNRB
BBRQNKNR
NQBRKRNB
RNKRBQNB
NQRKBNRB
NNRKQRBB
NRBKNQRB
BBRQNKNR
NRB...

result:

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

Test #7:

score: 0
Accepted
time: 99ms
memory: 10892kb

input:

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

output:

BBRQNKNR
BNRQKBRN
BBQRKRNN
RBBQKRNN
BBRQNKNR
NQBRKRNB
RNKRBQNB
QBNRKRBN
BQNRKBRN
RBBNKRQN
BBRQNKNR
BRNNQBKR
NNRBKQBR
BBQRKNRN
NBBNRKRQ
RBBNKRNQ
BBRQNKNR
NQBRKRNB
QRKNNRBB
NRQNBKRB
RBQNKRBN
BBRQNKNR
BRNNQBKR
NNRBKQBR
BNQBRKRN
RQKBBNNR
RBNQKRBN
BBRQNKNR
NQBRKRNB
QRKNNRBB
NRQNBKRB
RBNNKRBQ
BBRQNKNR
NQB...

result:

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

Test #8:

score: 0
Accepted
time: 93ms
memory: 11140kb

input:

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

output:

BBRQNKNR
NQBRKRNB
NRQNBBKR
QRNBKNBR
BBRQNKNR
NQBRKRNB
QRKNNRBB
BRNBKRQN
NRQBKNBR
BBRQNKNR
NQBRKRNB
QRKNNRBB
BRNBKRQN
NRNBKQBR
BBRQNKNR
NQBRKRNB
NRQNBBKR
QNBNRBKR
QRNNKBBR
BBRQNKNR
NQBRKRNB
QRKNNRBB
NRQNBKRB
NRQNKBBR
BBRQNKNR
BRNNQBKR
RQBNNBKR
BNNRKBQR
BNNBRQKR
NRNQKBBR
BBRQNKNR
RBNQBKNR
BBRQKRNN
BBR...

result:

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

Test #9:

score: 0
Accepted
time: 92ms
memory: 10940kb

input:

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

output:

BBRQNKNR
BNRQKBRN
BRNBNQKR
NBRKBNQR
QBBRKNNR
BBRQNKNR
BNRQKBRN
BRNBNQKR
NBBQRNKR
NBBRKQNR
BBRQNKNR
BRNNQBKR
NNRBKQBR
RQKBNNBR
NBBRKNQR
BBRQNKNR
BRNNQBKR
QRKBNNBR
BRKBNRQN
QBNRKNBR
BBRQNKNR
BRNNQBKR
NNRBKQBR
BNRBKRQN
NBQRKNBR
BBRQNKNR
BRNNQBKR
QRKBNNBR
NNRBBQKR
NBNRKQBR
BBRQNKNR
BRNNQBKR
QRKBNNBR
NNR...

result:

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

Test #10:

score: 0
Accepted
time: 84ms
memory: 10908kb

input:

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

output:

BBRQNKNR
BBRQNKNR
BBNQRKNR
BBQRNKNR
BBRNQKNR
BBRQNKNR
BBNQRKNR
BBRQNKRN
BBRNNKQR
BBRQNKNR
BBNQRKNR
BBRQNKRN
BBRKNQNR
BQRBNKNR
BBRQNKNR
RBNQBKNR
BBRQKRNN
BNRBQKNR
BBRQNKNR
RBNQBKNR
BBRNNQKR
BBRKNRNQ
BNRBNKQR
BBRQNKNR
RBNQBKNR
BBNRQKNR
NBBQRKNR
QBRNBKNR
BBRQNKNR
BBNQRKNR
BBQRNKNR
BBRQKNNR
NBRQBKNR
BBR...

result:

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

Test #11:

score: 0
Accepted
time: 81ms
memory: 10892kb

input:

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

output:

BBRQNKNR
NQBRKRNB
NRQNBBKR
QRNNBKRB
NNRKBBRQ
RQNBBNKR
BBRQNKNR
NQBRKRNB
RNNBBQKR
RNQBBNKR
BBRQNKNR
NQBRKRNB
RNNBBQKR
BBRQNKNR
NQBRKRNB
NRQNBBKR
NRNBBQKR
RQNNBBKR
BBRQNKNR
NQBRKRNB
RNNBBQKR
RKNBBNQR
RNQNBBKR
BBRQNKNR
BRNNQBKR
RQBNNBKR
NBBNQRKR
QRKNNBBR
RNNQBBKR
BBRQNKNR
BNRQKBRN
BRNBNQKR
BQNBNRKR
BRQ...

result:

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

Extra Test:

score: 0
Extra Test Passed