QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#135283#6644. Red Black GridRd_rainydays#WA 11ms5868kbC++141.5kb2023-08-05 13:31:522023-08-05 13:31:56

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-08-05 13:31:56]
  • 评测
  • 测评结果:WA
  • 用时:11ms
  • 内存:5868kb
  • [2023-08-05 13:31:52]
  • 提交

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)>=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;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 5696kb

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: 11ms
memory: 5868kb

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)