QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#188341 | #6644. Red Black Grid | qzzyq | WA | 2ms | 3656kb | C++14 | 2.5kb | 2023-09-25 19:13:36 | 2023-09-25 19:13:36 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define maxn 1005
#define put() putchar('\n')
#define Tp template<typename Ty>
#define Ts template<typename Ty,typename... Ar>
using namespace std;
void read(int &x){
int f=1;x=0;char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
while (c>='0'&&c<='9') {x=x*10+c-'0';c=getchar();}
x*=f;
}
namespace Debug{
Tp void _debug(char* f,Ty t){cerr<<f<<'='<<t<<endl;}
Ts void _debug(char* f,Ty x,Ar... y){while(*f!=',') cerr<<*f++;cerr<<'='<<x<<",";_debug(f+1,y...);}
Tp ostream& operator<<(ostream& os,vector<Ty>& V){os<<"[";for(auto& vv:V) os<<vv<<",";os<<"]";return os;}
#define gdb(...) _debug((char*)#__VA_ARGS__,__VA_ARGS__)
}using namespace Debug;
#define fi first
#define se second
#define mk make_pair
const int mod=1e9+7;
int power(int x,int y=mod-2) {
int sum=1;
while (y) {
if (y&1) sum=sum*x%mod;
x=x*x%mod;y>>=1;
}
return sum;
}
int n,m,a[maxn][maxn];
void print(void) {
int i,j;
for (i=1;i<=n;i++,put()) for (j=1;j<=n;j++) putchar(a[i][j]?'R':'B');
}
void solve(void) {
int i,j;
read(n);read(m);
for (i=1;i<=n;i++) for (j=1;j<=n;j++) a[i][j]=0;
if (m==1||m==2*n*(n-1)-1) return puts("Impossible"),void();
puts("Possible");
int tmp1=0,tmp2=0,tmp3=0;
if (n==3) {
if (m==3) return a[1][2]=1,print(),void();
else if (m==5) return a[3][3]=a[1][2]=1,print(),void();
else if (m==6) return a[1][2]=a[2][1]=1,print(),void();
else if (m==7) return a[3][1]=a[3][3]=a[1][2]=1,print(),void();
else if (m==8) return a[1][1]=a[1][3]=a[3][1]=a[3][3]=1,print(),void();
else if (m==9) return a[1][2]=a[2][1]=a[2][3]=1,print(),void();
else if (m==10) return a[1][1]=a[1][3]=a[2][2]=a[3][1]=1,print(),void();
}
if (n&1) {
// tmp1=2,tmp2=(n-2)/2*3,tmp3=((n-2)*(n-2)+1)/2;
for (i=1;i<n&&m>7;i++)
for (j=1;j<=n&&m>7;j++) if ((i+j)%2==0) {
int sum=4;
if (i==1||i==n) sum--;
if (j==1||j==n) sum--;
m-=sum;
a[i][j]=1;
}
for (j=3;j<n&&m>4;j+=2) m-=3,a[n][j]=1;
if (m==3) a[n][j]=1;
else if (m==2) a[n][1]=1;
else if (m==4) a[n][1]=a[n][n]=1;
}
else {
for (i=1;i<n&&m>7;i++)
for (j=1;j<=n&&m>7;j++) if ((i+j)%2==0&&i+j>2) {
int sum=4;
if (i==1||i==n) sum--;
if (j==1||j==n) sum--;
m-=sum;
a[i][j]=1;
}
for (j=2;j<n&&m>4;j+=2) m-=3,a[n][j]=1;
if (m==3) a[n][j]=1;
else if (m==2) a[1][1]=1;
else if (m==4) a[1][1]=a[n][n]=1;
}
print();
}
signed main(void){
int T;
read(T);
while (T--) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3592kb
input:
2 3 6 3 1
output:
Possible BRB RBB BBB Impossible
result:
ok correct! (2 test cases)
Test #2:
score: -100
Wrong Answer
time: 2ms
memory: 3656kb
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 B Possible RB BR Impossible Possible RB BB Impossible Possible BB BB Possible RBR BRB RBR Impossible Possible RBR BRB RBB Possible BRB RBR BBB Possible RBR BBB RBR Possible BRB BBB RBR Possible BRB RBB BBB Possible BRB BBB BBR Possible BBB BBB RBR Possible BRB BBB BBB Possible BBB BBB RBB I...
result:
wrong answer Condition failed: "getNum(vec) == k" (test case 25)