QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#378091 | #5071. Check Pattern is Good | InfinityNS | RE | 181ms | 5124kb | C++20 | 8.0kb | 2024-04-06 01:08:29 | 2024-04-06 01:08:29 |
Judging History
answer
#include<bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
typedef long long ll;
using namespace std;
typedef pair<int,int> pii;
const int mod=998244353;
inline int add(int x,int y){int ret=x+y;if(ret>=mod)ret-=mod;return ret;}
inline int sub(int x,int y){int ret=x-y;if(ret<0)ret+=mod;return ret;}
inline int mul(int x,int y){return ((ll)x*y)%mod;}
inline int step(int base,int pw){int ret=1;while(pw){if(pw&1)ret=mul(ret,base);base=mul(base,base);pw>>=1;}return ret;}
inline int invv(int x){return step(x,mod-2);}
const int maxn=110;
const int maxv=maxn*maxn;
struct edge{
int a,b,f,c;
};
int inf=1e9;
int rez,level[maxv],start[maxv],sink,source;
vector<edge>e;
vector<int>vect[maxv];
void add_edge(int u,int v,int c){
if(c==1)rez++;
vect[u].pb(e.size());
e.pb({u,v,0,c});
vect[v].pb(e.size());
e.pb({v,u,c,c});
///printf("%d %d %d | EDGE \n",u,v,c);
}
void init_mrezu(){
e.clear();
for(int i=source;i<=sink;i++){
vect[i].clear();
}
}
int bfs(){
for(int i=source;i<=sink;i++)level[i]=0;
level[source]=1;
queue<int>q;
q.push(source);
while(q.size()){
int x=q.front();
q.pop();
for(int i=0;i<vect[x].size();i++){
int id=vect[x][i];
if(e[id].f==e[id].c || level[e[id].b])continue;
level[e[id].b]=level[x]+1;
q.push(e[id].b);
}
}
return level[sink];
}
int sflow(int x,int flow){
if(x==sink)return flow;
for(;start[x]<vect[x].size();start[x]++){
int id=vect[x][start[x]];
if(e[id].f<e[id].c && level[x]+1==level[e[id].b]){
int tmp=sflow(e[id].b,min(flow,e[id].c-e[id].f));
if(tmp){
e[id].f+=tmp;
e[id^1].f-=tmp;
return tmp;
}
}
}
return 0;
}
int get_flow(){
int ret=0;
while(bfs()){
for(int i=source;i<=sink;i++)start[i]=0;
int pom;
while(pom=sflow(source,inf))ret+=pom;
}
return ret;
}
int a[maxn][maxn],n,m,ind[maxn][maxn],b[maxn][maxn];
pii revind[maxv];
void menjaj(int &x){
if(x==0)x=2;
else if(x==2)x=0;
}
void labeluj(){
for(int i=1;i<n;i++){
for(int j=1;j<m;j++){
int cnt[3]={0,0,0};
cnt[a[i][j]]++;cnt[a[i][j+1]]++;
cnt[a[i+1][j]]++;cnt[a[i+1][j+1]]++;
if(cnt[0] && cnt[2])b[i][j]=-1;
else if(cnt[0]){
if(cnt[0]<4)b[i][j]=0;
else{
rez++;
b[i][j]=-1;
}
}
else if(cnt[2]){
if(cnt[2]<4)b[i][j]=2;
else{
rez++;
b[i][j]=-1;
}
}
else b[i][j]=1;
///printf("%d %d %d %d |",b[i][j],cnt[0],cnt[1],cnt[2]);
}
///printf("\n");
}
///printf("BNIZ\n");
}
int get_color(int x){
pii pos=revind[x];
if(ind[pos.ff][pos.ss]!=x)return 2;
return b[pos.ff][pos.ss];
}
int mat[4][maxn][maxn];
void upisi(int c,int id,pii pos){
///printf("%d %d AAA\n",pos.ff,pos.ss);
mat[id][pos.ff][pos.ss]=c;
mat[id][pos.ff+1][pos.ss]=c;
mat[id][pos.ff][pos.ss+1]=c;
mat[id][pos.ff+1][pos.ss+1]=c;
}
void ispisi_mat(int id){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%d",mat[id][i][j]);
}
printf("\n");
}
printf(" MAT\n");
}
void solve(){
/*for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%d",a[i][j]);
}
printf(" OP\n");
}*/
rez=0;
labeluj();
int dx[8]={-1,-1,-1,0,0,1,1,1};
int dy[8]={-1,0,1,-1,1,-1,0,1};
int indcnt=0;
for(int i=1;i<n;i++){
for(int j=1;j<m;j++){
if(b[i][j]==-1)continue;
ind[i][j]=++indcnt;
revind[indcnt]={i,j};
if(b[i][j]==1){
++indcnt;
revind[indcnt]={i,j};
}
}
}
source=0;
sink=indcnt+1;
init_mrezu();
for(int i=1;i<n;i++){
for(int j=1;j<m;j++){
if(b[i][j]==0){
add_edge(source,ind[i][j],1);
}
if(b[i][j]==1){
add_edge(source,ind[i][j],1);
add_edge(ind[i][j]+1,sink,1);
add_edge(ind[i][j],ind[i][j]+1,inf);
}
if(b[i][j]==2){
add_edge(ind[i][j],sink,1);
}
if(b[i][j]==-1 || b[i][j]==2)continue;
for(int k=0;k<8;k++){
int idx=i+dx[k];
int idy=j+dy[k];
if(idx<1 || idx>=n || idy<1 || idy>=m || b[idx][idy]==-1 || b[idx][idy]==0)continue;
add_edge(ind[i][j],ind[idx][idy]+(b[idx][idy]==1),inf);
}
}
}
rez-=get_flow();
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)if(a[i][j]==1)a[i][j]=2;
vector<int>cand;
for(int i=source+1;i<sink;i++){
if(level[i] && get_color(i)!=2)cand.pb(i);
/*if(level[i]){
if(get_color(i)!=2)upisi(1,1,revind[i]);
if(get_color(i)!=2)upisi(1,3,revind[i]);
if(get_color(i)!=2)printf("%d %d | %d %d WHITE\n",revind[i].ff,revind[i].ss,b[revind[i].ff][revind[i].ss],i);
}
else{
if(get_color(i)!=0)upisi(2,2,revind[i]);
if(get_color(i)!=0)upisi(2,3,revind[i]);
if(get_color(i)!=0)printf("%d %d | %d %d black\n",revind[i].ff,revind[i].ss,b[revind[i].ff][revind[i].ss],i);
}*/
}
/*ispisi_mat(1);
ispisi_mat(2);
ispisi_mat(3);*/
for(int i=0;i<cand.size();i++){
pii pos=revind[cand[i]];
///printf("%d %d %d POS\n",pos.ff,pos.ss,cand[i]);
a[pos.ff][pos.ss]=0;
a[pos.ff][pos.ss+1]=0;
a[pos.ff+1][pos.ss]=0;
a[pos.ff+1][pos.ss+1]=0;
}
int rez2=0;
for(int i=1;i<n;i++){
for(int j=1;j<m;j++){
int cnt[3]={0,0,0};
cnt[a[i][j]]++;cnt[a[i][j+1]]++;
cnt[a[i+1][j]]++;cnt[a[i+1][j+1]]++;
if(cnt[0] && cnt[2])continue;
rez2++;
}
}
///printf("%d %d REZ2\n",rez,rez2);
if(rez!=rez2){
for(int i=0;i<cand.size();i++){
pii pos=revind[cand[i]];
printf("%d %d POS\n",pos.ff,pos.ss);
a[pos.ff][pos.ss]=0;
a[pos.ff][pos.ss+1]=0;
a[pos.ff+1][pos.ss]=0;
a[pos.ff+1][pos.ss+1]=0;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%d",a[i][j]);
}
printf(" OP\n");
}
}
}
int main(){
///freopen("test.txt","r",stdin);
int t;
scanf("%d",&t);
int flag=0;
if(t>=29)flag=1;
int ct=0;
flag=0;
while(t--){
ct++;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++){
string s;
cin>>s;
for(int j=1;j<=m;j++)
if(s[j-1]=='?')a[i][j]=1;
else if(s[j-1]=='W')a[i][j]=0;
else if(s[j-1]=='B')a[i][j]=2;
if(flag && ct==29)cout<<s<<endl;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if((i+j)%2){
menjaj(a[i][j]);
}
}
}
solve();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if((i+j)%2){
menjaj(a[i][j]);
}
}
}
if(!flag){
printf("%d\n",rez);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]==0)printf("W");
else if(a[i][j]==2)printf("B");
}
printf("\n");
}
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 4112kb
input:
3 2 2 ?? ?? 3 3 BW? W?B ?BW 3 3 BW? W?W ?W?
output:
1 BW WB 1 BWB WBB BBW 4 BWB WBW BWB
result:
ok ok (3 test cases)
Test #2:
score: 0
Accepted
time: 42ms
memory: 3936kb
input:
10000 9 2 BB BW WW WW ?W ?B B? W? BB 6 2 ?? ?B B? BW WW ?? 10 7 WBBBW?? ???BWWW ???BWWB ??WWBW? BBWBBWB WWB?WW? BWBW??? WWWWBBW BBWBB?W B?W?W?B 4 7 ??WBWWB ?BBWWWB ?W?BBB? BBBWBBB 10 1 B W ? B B W W W B ? 10 4 ??WW W?W? WWW? ???W ?W?? ?W?W W?W? ?W?W ???W ???W 8 3 WBW W?? ??? ??? W?W W?W ??? ?W? 4 1 ...
output:
3 BB BW WW WW BW WB BW WB BB 2 BW WB BW BW WW WB 9 WBBBWWB WBWBWWW BWBBWWB WBWWBWW BBWBBWB WWBBWWW BWBWBWB WWWWBBW BBWBBWW BBWBWBB 6 BWWBWWB WBBWWWB BWWBBBW BBBWBBB 0 B W B B B W W W B W 15 BWWW WBWB WWWB WBBW BWWB BWBW WBWB BWBW WBWW BWBW 8 WBW WWB WBW BWB WBW WBW BWB WWW 0 W B B W 1 BBWB WWBB 3 BW...
result:
ok ok (10000 test cases)
Test #3:
score: 0
Accepted
time: 48ms
memory: 3924kb
input:
10000 9 6 ?B?W?W WWBBWB ?WB?BW B?W?W? WW??W? B???BW ?W?WW? W?B?B? ?W?BB? 10 1 W ? ? ? ? ? ? ? B W 9 4 ???? ???? W??? ?W?B ??WW ?BW? WW?W ??W? ??W? 3 2 ?W ?B BB 2 7 ?W?BWWB ??W???W 9 9 ?BW?WWW?W BW?WBBWWW W?W????WW W??WW??WW W?BWB?B?W ??BB?WWWW W???WBW?W WWW???WWW B?WWWWWW? 8 10 W??BWWW??B ?BWBWBW?BW...
output:
21 BBWWBW WWBBWB BWBWBW BBWBWB WWBWWB BBWBBW BWBWWB WBBWBW BWWBBW 0 W W B W B W B W B W 15 WBWB BWBW WBWB BWBB WBWW WBWB WWBW WBWB BWWW 1 BW WB BB 4 BWBBWWB WBWWBBW 20 WBWBWWWWW BWBWBBWWW WBWBBWBWW WWBWWBWWW WBBWBWBWW BWBBWWWWW WBWBWBWWW WWWWBWWWW BWWWWWWWB 28 WWBBWWWWWB WBWBWBWBBW BWBWBWBWBW WBWWBW...
result:
ok ok (10000 test cases)
Test #4:
score: 0
Accepted
time: 37ms
memory: 3884kb
input:
10000 7 7 ?B??BBW ????BB? WBBB??B WW?B??? ?B??BBB BBWB??B B???BB? 10 6 W?WW?? W??W?? ?WWWW? ?WW?WW WW??W? W????? W?WW?? WW???W WWW??W ?W??W? 2 6 ?B??W? B???BB 1 8 ??BWB?W? 5 2 WB W? B? BB ?W 7 5 W???? ?WW?? ???W? WWWW? W?W?W ?W?B? W?WWB 8 5 B?WBW B??WW WWW?B WBBWB BW?WW B?W?B ??WWB BBW?B 10 4 WWWW ?...
output:
15 WBWBBBW BWBWBBW WBBBBWB WWWBWBW BBBWBBB BBWBWWB BWBWBBW 13 WWWWWB WBWWBW BWWWWB WWWBWW WWBWWW WBWBWB WBWWBW WWBBWW WWWWBW WWWBWB 4 WBWBWW BWBWBB 0 BWBWBWWW 1 WB WB BW BB BW 12 WBBWB BWWBW WBBWB WWWWB WBWBW BWBBW WBWWB 7 BBWBW BWBWW WWWBB WBBWB BWBWW BBWBB BWWWB BBWBB 9 WWWW WBWB WWBW WBWB BWWB BW...
result:
ok ok (10000 test cases)
Test #5:
score: 0
Accepted
time: 37ms
memory: 3920kb
input:
10000 1 1 ? 7 9 W?WB????B ?WB??B??W BBB?W?WB? WWW??WWW? WW?B??W?W ?BWW??WWW B?WW?W?WB 3 7 ??BBBB? BW?WW?? B??B?BW 1 6 ?B?WWB 7 1 W W W B ? W ? 8 8 WW??W?B? WWW????? BB??WWWW ?W???WBW BBW???WB BWBWBWW? ?W?WW??B BB?????W 10 8 WWW?W?BW WB?W?WBW WW?W?WBW WWWW?WW? WBWB?B?W BW?BW??B ??WWBWWB W?BW?BWW W?W?...
output:
0 B 18 WBWBWWBWB BWBWBBWBW BBBBWBWBW WWWWBWWWB WWBBWBWBW WBWWWBWWW BWWWBWBWB 5 WBBBBBW BWBWWWB BBWBBBW 0 BBBWWB 0 W W W B B W B 23 WWBBWWBW WWWWBBWB BBWBWWWW WWBWBWBW BBWBWBWB BWBWBWWB BWBWWBWB BBWBBWBW 19 WWWBWBBW WBWWBWBW WWBWBWBW WWWWBWWB WBWBWBBW BWBBWBWB WBWWBWWB WWBWWBWW WBWBWWWW WWWWBBWB 0 WB...
result:
ok ok (10000 test cases)
Test #6:
score: 0
Accepted
time: 53ms
memory: 3896kb
input:
10000 9 1 W B ? B W W ? W B 1 10 W??????BWB 5 8 ??W??WB? ?B?WWB?W ??????B? BB??BBBB WB??BBB? 6 2 ?B ?? WB ?B WW W? 1 10 WW??BW?BW? 4 3 BW? ??? B?B ??W 10 10 WW?BBW?BW? WW?BW????? ?WWBW?WB?W ???B?BBBBB ??BBBB?BBW ?WW??W?WBB W??BB?WBBB BBWBW?WBBW ?W????BWB? ??BW??WBWB 1 6 ??B??? 6 5 WBB?W ?WWWW WWWW? ...
output:
0 W B B B W W B W B 0 WWBWBWBBWB 10 BWWWBWBW WBWWWBWW BWBWBWBW BBWBBBBB WBBWBBBW 2 WB BW WB WB WW WB 0 WWBWBWBBWW 6 BWB WBW BWB WBW 26 WWBBBWWBWB WWWBWBBWBW BWWBWWWBWW WBWBWBBBBB BWBBBBWBBW WWWBWWBWBB WWBBBWWBBB BBWBWBWBBW BWBWBWBWBW WBBWWBWBWB 0 BWBWBW 4 WBBWW BWWWW WWWWB WWWBW WWBBW WBWWB 0 B B B ...
result:
ok ok (10000 test cases)
Test #7:
score: 0
Accepted
time: 142ms
memory: 4204kb
input:
10000 10 10 ?W?WW?W??W ?BWBW?BBWW ?BB?WWW?W? W?B?WWWWWW ?BWW?WWW?W BWWWWWWW?W WBBWW??B?? W??WW?W??W WWWW?WW?W? ?W?BWW?WW? 10 10 WB?WBBWWWB ?WWWW?WB?? ?B?BWW?BW? WBWBW??W?W B?WB?WBWWB WWBWBBWW?? ??WBBWBWBW WWB??WWBWB B?BWWWWBWW WW?WWWBWWB 10 10 ??W????WW? ?WW?W???W? ??W??WW?W? WW??WW?WW? ?W??WW?WW? ?...
output:
20 BWBWWBWWBW WBWBWWBBWW BBBWWWWWWW WWBBWWWWWW WBWWBWWWBW BWWWWWWWBW WBBWWWBBWB WBWWWBWWBW WWWWBWWBWB WWWBWWBWWB 24 WBBWBBWWWB BWWWWBWBBW WBBBWWBBWB WBWBWBWWBW BWWBBWBWWB WWBWBBWWWB BBWBBWBWBW WWBWWWWBWB BWBWWWWBWW WWWWWWBWWB 33 WBWWBWBWWW BWWBWBWBWB WBWWBWWBWW WWBBWWBWWB BWBBWWBWWB WWWWBWWWBW BWBBW...
result:
ok ok (10000 test cases)
Test #8:
score: 0
Accepted
time: 136ms
memory: 3880kb
input:
10000 10 10 ?BBBBWBBB? ??W???WB?? BB?W???BB? ?B???BBB?? W??BB?WBBB ?B?B???W?W ?????BB??? ?BW???B??? ???BBB??BB BWBBBBBBB? 10 10 BWW?WWB?BW ??B?WBBBWB B??BB??BWB BW?BWB???W ?WB?WWW?W? B??B??W?BB ?WBB?WBB?B BB??BBWBW? WB??WBB?BW ?B???B?W?? 10 10 ??WWWB??BB ?WW???WBWW ???W??W?WW ?W?B?W?W?? WWB?WBB??W B...
output:
34 WBBBBWBBBW BWWBWBWBWB BBBWBWBBBW WBWBWBBBWB WWBBBWWBBB WBWBWBBWBW BWBWBBBBWB WBWBWWBWBW BWBBBBWBBB BWBBBBBBBB 31 BWWBWWBWBW WBBWWBBBWB BWWBBWWBWB BWWBWBBWBW BWBWWWWBWB BBWBWBWWBB BWBBBWBBWB BBWWBBWBWB WBWBWBBWBW WBBWBBWWWB 33 WBWWWBBWBB BWWBBWWBWW WBBWWBWBWW BWWBBWBWBB WWBWWBBBWW BBWBWBWWWW BWBWB...
result:
ok ok (10000 test cases)
Test #9:
score: 0
Accepted
time: 40ms
memory: 3816kb
input:
10000 1 100 WWW?BWB?BB?BBW?BWBB?W??B?B?BWWBWB?WWB??BBBBB??BBBBB?BBBWBWWW?B?BBBWW??BBBW???B???W??W??BW?B?B?W??WB? 1 100 ?WBW?WB?BBBB?BWBWB???WWB?BBB?BBW?B?B??W?B??BBW??WBBW???WW?BBBB?WWB?WBB???WBBB?BBW?W??BW?B??BBBBBBBWB 1 100 W?????BBB?BB?BB?????BWWWB?B???BB??????B??BWW???B??B?B???????BBB??B?BBB???B...
output:
0 WWWWBWBWBBBBBWBBWBBWWWBBBBBBWWBWBWWWBWBBBBBBBWBBBBBWBBBWBWWWBBBBBBWWBWBBBWBWBBBWBWBWWWBBWWBWBWWWBWBW 0 BWBWBWBWBBBBBBWBWBBWBWWBBBBBBBBWBBBBBWWWBWBBBWBWWBBWBWBWWWBBBBBWWBBWBBBWBWBBBWBBWWWWBBWWBWBBBBBBBBWB 0 WWBWBWBBBWBBBBBWBWBWBWWWBWBWBWBBBWBWBWBWBBWWBWBBBWBWBWBWBWBWBBBWBBBBBBBWBBBWBWBWWWBWBWWWBBBW...
result:
ok ok (10000 test cases)
Test #10:
score: 0
Accepted
time: 138ms
memory: 3856kb
input:
10000 100 1 W B B ? B B B ? B B B B W B B B ? ? B ? B B ? W B W ? B ? B W W ? W ? B ? B B ? W W B ? B B ? ? W W B B ? B B ? B ? ? ? W B W B ? B W ? ? B B B B ? B ? W B B W B ? W B B ? B B ? B ? W ? B ? B B ? B W 100 1 ? W ? W ? W W W W W B W ? ? B B ? W ? B W W W W ? ? ? ? W W B W W W W W ? W W W ? ...
output:
0 W B B W B B B W B B B B W B B B B W B W B B B W B W B B B B W W B W B B B B B W W W B W B B B W W W B B B B B W B W B W W B W B B B W W B B B B B W B W W B B W B W W B B W B B B B B W B B B B B W B W 0 B W B W B W W W W W B W B W B B B W B B W W W W B W B W W W B W W W W W B W W W B W B W B B W B ...
result:
ok ok (10000 test cases)
Test #11:
score: 0
Accepted
time: 181ms
memory: 4976kb
input:
1000 100 10 WWWB?WWW?W W????????W WB?W??WW?W WBB?WWW??B ?WWWW?WW?W ?WWWW?W?WB ?B??W?W??? WW?W?BWWW? WW?B?W?W?W ????WW??W? BWB??WWWW? W??W??WW?? W?WBB??WWW ?WWBBWW?WW ?WBWW?B??? ???WWW???W ??WW?WWW?? ????W?BW?W ???W?W?W?W ?WW?WW?WB? BW??WW?WW? WB?WWWWW?W ??BWW??W?W W??B?WWWW? WWW?W??WWW BBBW??W?W? ??...
output:
335 WWWBBWWWBW WBWBWBWBWW WBBWBWWWBW WBBBWWWBWB BWWWWWWWBW BWWWWBWBWB WBWBWWWWBW WWBWBBWWWB WWBBWWBWBW WBWBWWWBWB BWBWBWWWWB WBWWWBWWBW WBWBBWBWWW BWWBBWWBWW BWBWWBBWBW WBWWWWWBWW BWWWBWWWBW WBWBWBBWWW BWBWBWBWBW WWWBWWWWBW BWBWWWBWWB WBWWWWWWBW BWBWWBBWBW WBWBBWWWWB WWWBWWBWWW BBBWBBWBWB WBWBWWBWBW...
result:
ok ok (1000 test cases)
Test #12:
score: 0
Accepted
time: 168ms
memory: 5124kb
input:
1000 10 100 BBWB??W??B?BWB?BBB??WWWW?B???WBB??WW???WWBW?B??W??BW?BWBBBW?BWBW?WBW?B?WWB??B?B?BBWWWBBBBW?BB???B?WB ??????WWWBWBBB??W??WW??BWBW??W??????WWWB?B??B?????W?B?????W??BBBBWBW??BWWWB???WBWB?BB?WW?B????W?WWB? WB?BBBW?B??BB?WWW?B??WBB??W?BBW??BB??BB???BB??B??WB??W?B?B?WWWWW?BB??W?W?WBB??B?WWBBB?...
output:
330 BBWBWBWWBBBBWBWBBBWBWWWWBBBWBWBBWBWWBWBWWBWWBWBWBWBWWBWBBBWWBWBWBWBWWBWWWBWWBWBWBBWWWBBBBWWBBWBWBBWB BWBWBWWWWBWBBBBWWWBWWBWBWBWBWWBWBWBBWWWBWBWWBBWBWBWBBWBWBWWBWBBBBWBWBWBWWWBBWBWBWBWBBBWWWBBWWBWBWWBW WBWBBBWWBWBBBWWWWBBWBWBBBWWWBBWBWBBBWBBWBWBBWWBWBWBWBWBBWBBWWWWWBBBBWWBWBWBBBWBWWWBBBWBWWBWBWW...
result:
ok ok (1000 test cases)
Test #13:
score: -100
Runtime Error
input:
100 100 100 ?WW?WW??WWW??BBW??WW??W???W?W?W?????W?W?BWBW??WBW????W??BB??BW?W??W????WBW?????WWB??BWW????W??W??WW? B?????WW???B?BWWWB?WWW?WB?BB??????W??W?BWWW?BB??WWBWB?WWW????WW?W??BB?BBWB?W????W???BWWW??BBWWW???BW W?BW??????WBB?B????W?BBW????BBW????W?W?????B?B??WW??????WWWWW?W??WW?WBW??W??W????BWWB?...
output:
4352 BWWWWWBBWWWWBBBWBWWWBBWBWBWWWBWWBWBWWBWWBWBWBWWBWBWBWWBWBBWBBWBWBWWWWBWWBWWBWBWWWBWBBWWBWBWWBWWWBWWB BBWBWBWWBWBBWBWWWBWWWWBWBWBBWWBBWBWBWWBBWWWBBBWBWWBWBBWWWWBWBWWBWBWBBWBBWBBWBWBWWWBWBWWWBWBBWWWBWBBW WWBWBWBWWBWBBWBWBWBWBBBWWBWWBBWWBWBWBWWBWBWBWBBWWWBWBWBWWWWWWBWWBWWBWBWWBWWBWBWBWBWWBWWBBBWWW...