QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#468743#7179. Fischer's Chess Guessing Gameembusca#TL 0ms0kbC++201.1kb2024-07-09 00:01:432024-07-09 00:01:44

Judging History

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

  • [2024-07-09 00:01:44]
  • 评测
  • 测评结果:TL
  • 用时:0ms
  • 内存:0kb
  • [2024-07-09 00:01:43]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rp(i,a,b)        for(int i=a;i<b;i++)

bool veri(string &t){
    int te = -1;
    rp(i, 0, 8){
        if(te > 0 && t[i] == 'B' && (i%2) == (te%2)) return false;
        else if(t[i] == 'B') te = i;
    }
    rp(i, 0, 8){
        if(t[i] == 'K'){
            bool flag1 = true, flag2 = true;
            rp(j, 0, i) if(t[j] == 'R') flag1 = false;
            rp(j, i, 8) if(t[j] == 'R') flag2 = false;
            if(flag1 || flag2) return false;
            break;
        }
    }
    return true;
}

void solvetask(){
    int n;
    cin >> n;
    string temp = "KQRRBBNN";
    while(true){
        if(veri(temp)) cout << temp << endl;
        else{
            next_permutation(temp.begin(), temp.end());
            continue;
        }
        next_permutation(temp.begin(), temp.end());
        int t;
        cin >> t;
        if(t == 8) break;
    }
}

int main(){
    //cin.tie(0)->sync_with_stdio(0);
    fflush (stdout);
    string t;
    while(true){
        cin >> t;
        if(t == "END") return 0;
        solvetask();
    } 
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Time Limit Exceeded

input:

GAME 1
0
0
0
1
0
1

output:

NBBNQRKR
NBBNRKQR
NBBNRKRQ
NBBNRQKR
NBBQNRKR
NBBQRKNR
NBBQRKRN

result: