QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#164202 | #7179. Fischer's Chess Guessing Game | PhantomThreshold# | AC ✓ | 68ms | 4388kb | C++20 | 2.4kb | 2023-09-04 20:39:59 | 2023-09-05 11:42:40 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
string finalans="RKRBBQNN";
auto query=[&](string str)
{
cout<<str<<endl;
int inp=0;
for(int i=0;i<8;i++)if(str[i]==finalans[i])inp++;
cin>>inp;
return inp;
};
string pos="BBKNNQRR";
vector<string> vec;
do
{
int ok=1;
for(int i=0;i<8;i++)
{
if(pos[i]=='B')
{
for(int j=i+1;j<8;j++)
if(pos[j]=='B')
{
if(i%2==j%2)
{
ok=0;
}
}
}
}
for(int i=0;i<8;i++)
{
if(pos[i]=='K')
{
int L=0,R=0;
for(int j=0;j<i;j++)
if(pos[j]=='R')L++;
for(int j=i+1;j<8;j++)
if(pos[j]=='R')R++;
if(L!=1 or R!=1)ok=0;
}
}
if(ok)vec.push_back(pos);
}
while(next_permutation(pos.begin(),pos.end()));
// cerr<<vec.size()<<endl;
map<vector<string>,string> mp;
function<bool(vector<string>,int)> dfs=[&](vector<string> cur,int dep)
{
if(cur.size()<=1u)return true;
if(dep>5)return false;
vector<pair<int,string>> srt;
for(const auto &t:vec)
{
vector<int> cnt(9);
for(const auto &s:cur)
{
int c=0;
for(int i=0;i<8;i++)
if(s[i]==t[i])
c++;
cnt[c]++;
}
srt.emplace_back(*max_element(cnt.begin(),cnt.end()),t);
}
sort(srt.begin(),srt.end());
for(const auto &[cc,t]:srt)
{
vector<vector<string>> nxt(9);
for(const auto &s:cur)
{
int c=0;
for(int i=0;i<8;i++)
if(s[i]==t[i])
c++;
nxt[c].push_back(s);
}
int ok=1;
for(int i=0;i<=8;i++)
{
if(not dfs(nxt[i],dep+1))
{
ok=0;
break;
}
}
if(ok)
{
mp[cur]=t;
return true;
}
}
return false;
};
dfs(vec,1);
// cerr<<"dfs end"<<endl;
string cmd;
while(cin>>cmd)
{
if(cmd=="END")break;
else
{
int tt;
cin>>tt;
}
vector<string> now=vec;
int ok=0;
while(now.size()>1)
{
// cerr<<"rem "<<now.size()<<endl;
string ask=mp[now];
int same=query(ask);
if(same==8)
{
ok=1;
break;
}
vector<string> tmp;
for(const auto &z:now)
{
int cnt=0;
for(int i=0;i<8;i++)
if(z[i]==ask[i])
cnt++;
if(cnt==same)
{
// cerr<<"possible "<<z<<endl;
tmp.push_back(z);
}
}
tmp.swap(now);
}
if(not ok)
{
assert(now.size()==1u);
int same=query(now[0]);
assert(same==8);
}
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 54ms
memory: 4096kb
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: 58ms
memory: 4128kb
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: 60ms
memory: 4320kb
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: 67ms
memory: 4160kb
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: 65ms
memory: 4316kb
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: 62ms
memory: 4092kb
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: 67ms
memory: 4088kb
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: 66ms
memory: 4388kb
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: 65ms
memory: 4156kb
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: 62ms
memory: 4152kb
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: 68ms
memory: 4316kb
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