QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#135222 | #6644. Red Black Grid | Rd_rainydays# | WA | 2ms | 5712kb | C++20 | 1.6kb | 2023-08-05 12:58:37 | 2023-08-05 12:58:37 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define REP(i,a,b) for(int i=(a),i##_end_=(b);i<i##_end_;++i)
static const int M=1003;
int T,n,k;
int F[M*M];
vector<int>V[2][3];
int G[2*M*M];
bool Work(int p){
REP(i,0,V[p][0].size()+1)
REP(j,0,V[p][1].size()+1){
//cerr<<i<<','<<j<<','<<k-i*2-j*3<<endl;
if(((k-i*2-j*3)&3)==0 && ((k-i*2-j*3)>>2)<=V[p][2].size()){
REP(a,0,i)F[V[p][0][a]]^=1;
REP(a,0,j)F[V[p][1][a]]^=1;
REP(a,0,(k-i*2-j*3)>>2)F[V[p][2][a]]^=1;
return 1;
}
}
return 0;
}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&k);
REP(i,0,2)REP(j,0,3)V[i][j].clear();
if(n==1){
if(!k)printf("Possible\nR\n");
else puts("Impossible");
continue;
}
if(n==3&&k==5){
printf("Possible\nRBB\nRRB\nRBR\n");
continue;
}
if(n==3&&k==7){
printf("Possible\nBBB\nRBR\nRRR\n");
continue;
}
// if(k==1 || k==2*n*(n=1)-1){
// puts("Impossible");
// continue;
// }
REP(i,1,n+1)REP(j,1,n+1){
F[(i-1)*n+j-1]=(i^j)&1;
int t=4-((i==1)||(i==n))-((j==1)||(j==n));
V[(i^j)&1][t-2].push_back((i-1)*n+j-1);
}
bool f=1;
//cerr<<"****"<<endl;
if(Work(0))f=0;
else if(Work(1))f=0;
if(f)puts("Impossible");
else{
puts("Possible");
REP(i,1,n+1){
REP(j,1,n+1){
putchar(F[(i-1)*n+j-1]==1?'R':'B');
}
puts("");
}
}
}
return 0;
}
/*
RBB
RRB
RBR
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 5588kb
input:
2 3 6 3 1
output:
Possible RRB RRR BRB Impossible
result:
ok correct! (2 test cases)
Test #2:
score: -100
Wrong Answer
time: 2ms
memory: 5712kb
input:
4424 1 0 2 4 2 3 2 2 2 1 2 0 3 12 3 11 3 10 3 9 3 8 3 7 3 6 3 5 3 4 3 3 3 2 3 1 3 0 4 24 4 23 4 22 4 21 4 20 4 19 4 18 4 17 4 16 4 15 4 14 4 13 4 12 4 11 4 10 4 9 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 0 5 40 5 39 5 38 5 37 5 36 5 35 5 34 5 33 5 32 5 31 5 30 5 29 5 28 5 27 5 26 5 25 5 24 5 23 5 22 5 21 5...
output:
Possible R Possible RR RR Impossible Possible RR RB Impossible Possible BR RB Possible RRR RRR RRR Impossible Possible RRR RRR RRB Possible BBB BBB BRB Possible RRR RRR BRB Possible BBB RBR RRR Possible RRB RRR BRB Possible RBB RRB RBR Possible BRB RRR BRB Possible BBB RBR BRB Possible RRB RBR BRB I...
result:
wrong answer Condition failed: "getNum(vec) == k" (test case 2)