QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#875421#7179. Fischer's Chess Guessing GameHeyJinhwi#TL 0ms0kbC++142.2kb2025-01-29 18:42:272025-01-29 18:42:28

Judging History

This is the latest submission verdict.

  • [2025-01-29 18:42:28]
  • Judged
  • Verdict: TL
  • Time: 0ms
  • Memory: 0kb
  • [2025-01-29 18:42:27]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
char x[960][10];
int tp=0;
char y[10]={'B','B','R','K','R','N','N','Q'};
int a[40320][10];
int b[10],v[10],mp[960][960];
bool valid[960];
void f(int k)
{
    if(k==8)
    {
        for(int i=0;i<k;i++)
        {
            a[tp][i]=b[i];
        }
        tp++;
        return;
    }
    for(int i=0;i<8;i++)
    {
        if(v[i])continue;
        b[k]=i;
        v[i]=1;
        f(k+1);
        v[i]=0;
    }
}
main()
{
    f(0);
    tp=0;
    for(int i=0;i<40320;i++)
    {
        if(a[i][0]%2==1)continue;
        if(a[i][1]%2==0)continue;
        if(a[i][2]>a[i][3]||a[i][3]>a[i][4])continue;
        if(a[i][5]>a[i][6])continue;
        if(a[i][0]==4&&a[i][1]==3&&a[i][2]==0&&a[i][3]==1)
        {
            if(a[i][4]==2&&a[i][5]==6&&a[i][6]==7&&a[i][7]==5)
            {
                //cout<<i<<' '<<tp<<' ';
            }
        }
        for(int j=0;j<8;j++)
        {
            x[tp][a[i][j]]=y[j];
        }
        tp++;
    }
    //cout<<x[542]<<'\n';
    for(int i=0;i<960;i++)
    {
        for(int j=0;j<960;j++)
        {
            for(int k=0;k<8;k++)
            {
                if(x[i][k]==x[j][k])
                {
                    mp[i][j]++;
                    mp[j][i]++;
                }
            }
        }
    }
    char z[10]={};
    while(true)
    {
        cin>>z;
        if(z[0]=='E')break;
        int temp;cin>>temp;
        for(int i=0;i<960;i++)valid[i]=true;
        for(int i=0;i<6;i++)
        {
            int k=0;
            for(int j=0;j<960;j++)
            {
                if(valid[j])
                {
                    k=j;
                    cout<<x[j]<<'\n';
                    fflush(stdout);
                    break;
                }
            }
            //cout<<mp[542][k]<<'\n';
            int c;cin>>c;
            if(c==8)break;
            for(int j=0;j<960;j++)
            {
                if(mp[k][j]!=c)
                {
                    valid[j]=false;
                }
            }
            int cnt=0;
            for(int j=0;j<960;j++)if(valid[j])cnt++;
            //cout<<cnt<<'\n';
        }
    }
}

詳細信息

Test #1:

score: 0
Time Limit Exceeded

input:

GAME 1
2
2
0
3

output:

BBRKRNNQ
BRKBNRQN
BNNRQBKR
RBBNKQRN

result: