QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#424584#8748. 简单博弈zjy0001WA 127ms11524kbC++172.6kb2024-05-29 13:38:282024-05-29 13:38:28

Judging History

This is the latest submission verdict.

  • [2024-05-29 13:38:28]
  • Judged
  • Verdict: WA
  • Time: 127ms
  • Memory: 11524kb
  • [2024-05-29 13:38:28]
  • Submitted

answer

#include<bits/stdc++.h>
#define LL long long
#define LLL __int128
#define uint unsigned
#define ldb long double
#define uLL unsigned long
using namespace std;
const int N=505,INF=1e9;
int sg[8][N][N];
inline int mex(vector<int>a){
    int z=0;for(sort(a.begin(),a.end()),a.erase(unique(a.begin(),a.end()),a.end());z<a.size()&&a[z]==z;++z);return z;
}
inline void init(const int&n,const int&m){
    for(int L=2;L<=n+m;++L)
        for(int i=max(1,L-m);i<=min(n,L-1);++i){
            const int j=L-i;
            sg[0][i][j]=mex({sg[0][i-1][j],sg[0][i][j-1],sg[0][i-1][j-1]});
            sg[1][i][j]=mex({(i>1?sg[1][i-1][j]:INF),(j>1?sg[1][i][j-1]:INF),(i>1&&j>1?sg[1][i-1][j-1]:INF),(j>1?sg[0][i-1][j]:INF),(i>1?sg[0][i][j-1]:INF),(i>1||j>1?sg[0][i-1][j-1]:INF)});
            sg[2][i][j]=mex({(i>1?sg[2][i-1][j]:INF),(j>2?sg[2][i][j-1]:INF),(i>1&&j>2?sg[1][i-1][j-1]:INF),(j>2?sg[0][i-1][j]:INF),(i>1?sg[1][i][j-1]:INF),(i>1||j>2?sg[0][i-1][j-1]:INF),(i>1?sg[1][i-1][j-1]:INF)});
            sg[3][i][j]=mex({(i>2?sg[3][i-1][j]:INF),(j>2?sg[3][i][j-1]:INF),(i>2&&j>2?sg[3][i-1][j-1]:INF),sg[1][i-1][j],sg[1][i][j-1],sg[0][i-1][j-1],sg[1][i-1][j-1]});
            sg[4][i][j]=mex({(i>1?sg[4][i-1][j]:INF),(j>3?sg[4][i][j-1]:INF),(i>1&&j>3?sg[4][i-1][j-1]:INF),(j>3?sg[0][i-1][j]:INF),(i>1?sg[2][i][j-1]:INF),(i>1||j>3?sg[0][i-1][j-1]:INF),(i>1?sg[2][i-1][j-1]:INF)});
            sg[5][i][j]=mex({(i>2?sg[5][i-1][j]:INF),(j>2?sg[5][i][j-1]:INF),(i>2&&j>2?sg[5][i-1][j-1]:INF),(j>2?sg[1][i-1][j]:INF),(i>2?sg[1][i][j-1]:INF),(i>2||j>2?sg[0][i-1][j-1]:INF),(j>2?sg[2][i-1][j-1]:INF),(i>2?sg[2][j-1][i-1]:INF),sg[2][i-1][j],sg[2][j-1][i],sg[1][i-1][j-1]});
            sg[6][i][j]=mex({(i>2?sg[6][i-1][j]:INF),(j>3?sg[6][i][j-1]:INF),(i>2&&j>3?sg[6][i-1][j-1]:INF),(i>2?sg[3][i-1][j-1]:INF),sg[1][i-1][j],sg[2][i-1][j],sg[3][i][j-1],sg[2][i][j-1],sg[0][i-1][j-1],sg[1][i-1][j-1],sg[2][i-1][j-1]});
            sg[7][i][j]=mex({(i>3?sg[7][i-1][j]:INF),(j>3?sg[7][i][j-1]:INF),(i>3&&j>3?sg[7][i-1][j-1]:INF),sg[3][i-1][j],sg[3][i][j-1],sg[1][i-1][j-1],sg[3][i-1][j-1]});
        }
}
signed main(){
    cin.tie(0)->sync_with_stdio(0);
    init(500,500);
    int t=1,ans=0;cin>>t;while(t--){
        int n,m;cin>>n>>m;
        map<int,bool>X,Y;
        for(int i=0;i<3;++i){int x,y;cin>>x>>y,X[x]=1,Y[y]=1;}
        const int x=X.size(),y=Y.size();
        if(x==1)ans^=sg[4][n][m];
        else if(x==2)if(y==2)ans^=sg[5][n][m];else ans^=sg[6][n][m];
        else if(x==3)if(y==1)ans^=sg[4][m][n];else if(y==2)ans^=sg[6][m][n];else ans^=sg[7][n][m];
    }
    return cout<<(ans?"OvO":"QAQ"),0;
}
/*
*/

詳細信息

Test #1:

score: 0
Wrong Answer
time: 127ms
memory: 11524kb

input:

100000
215 4
6 1
59 1
71 4
1 482
1 311
1 381
1 26
3 428
3 81
2 359
1 310
222 220
108 40
16 2
11 79
4 223
4 73
4 103
3 51
214 442
174 261
186 418
202 379
146 464
61 193
85 102
117 206
3 1
3 1
2 1
1 1
357 356
199 222
97 15
257 15
30 2
28 2
4 1
12 2
308 308
32 110
56 157
234 171
347 346
243 89
166 140
...

output:

QAQ

result:

wrong answer 1st lines differ - expected: 'OvO', found: 'QAQ'