QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#424584 | #8748. 简单博弈 | zjy0001 | WA | 127ms | 11524kb | C++17 | 2.6kb | 2024-05-29 13:38:28 | 2024-05-29 13:38:28 |
Judging History
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;
}
/*
*/
Details
Tip: Click on the bar to expand more detailed information
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'