QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#273191#5070. Check Pattern is Badsio_WA 1196ms3864kbC++144.3kb2023-12-02 21:57:532023-12-02 21:57:54

Judging History

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

  • [2023-12-02 21:57:54]
  • 评测
  • 测评结果:WA
  • 用时:1196ms
  • 内存:3864kb
  • [2023-12-02 21:57:53]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int t,n,m,k;
char a[105][105],tmp[105][105];
struct node{int x,y;};
vector<node> v;
char p[2]={'B','W'};
int dx[8]={0,0,1,1,1,-1,-1,-1};
int dy[8]={1,-1,0,1,-1,0,1,-1};
void output()
{
    // if(t==10000) return ;
    cout<<"YES\n";
    for(int i=1;i<=n;i++,cout<<"\n")
        for(int j=1;j<=m;j++) cout<<tmp[i][j];
}
queue<node> q;
char check(int x,int y)
{
    char ans1='?',ans2='?',ans3='?',ans4='?';
    // cout<<"xsa";
    // cout<<ans1<<" "<<ans2<<" "<<ans3<<" "<<ans4<<"\n";
    if(x>1&&y>1&&tmp[x-1][y-1]=='B'&&tmp[x-1][y]=='W'&&tmp[x][y-1]=='W') ans1='B';
    else if(x>1&&y>1&&tmp[x-1][y-1]=='W'&&tmp[x-1][y]=='B'&&tmp[x][y-1]=='B') ans1='W';
    else ans1='?';
    if(x>1&&y<m&&tmp[x-1][y]=='B'&&tmp[x-1][y+1]=='W'&&tmp[x][y+1]=='B') ans2='W';
    else if(x>1&&y<m&&tmp[x-1][y]=='W'&&tmp[x-1][y+1]=='B'&&tmp[x][y+1]=='W') ans2='B';
    else ans2='?';
    if(x<n&&y>1&&tmp[x][y-1]=='B'&&tmp[x+1][y-1]=='W'&&tmp[x+1][y]=='B') ans3='W';
    else if(x>1&&y<m&&tmp[x][y-1]=='W'&&tmp[x+1][y-1]=='B'&&tmp[x+1][y]=='W') ans3='B';
    else ans3='?';
    if(x<n&&y<m&&tmp[x+1][y+1]=='B'&&tmp[x+1][y]=='W'&&tmp[x][y+1]=='W') ans4='B';
    else if(x<n&&y<m&&tmp[x+1][y+1]=='W'&&tmp[x+1][y]=='B'&&tmp[x][y+1]=='B') ans4='W';
    else ans4='?';
    if(ans1=='?'&&ans2=='?'&&ans3=='?'&&ans4=='?') return '?';
    else if(ans1!='B'&&ans2!='B'&&ans3!='B'&&ans4!='B') return 'B';
    else if(ans1!='W'&&ans2!='W'&&ans3!='W'&&ans4!='W') return 'W';
    else return '!';
}
bool cmp(node a,node b){return a.x+a.y<b.x+b.y;}
int main()
{
    // freopen("a.in","r",stdin);
    // freopen("a.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    srand(time(0));
    cin>>t;
    for(int l=1;l<=t;l++)
    {
        v.clear();
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                cin>>a[i][j];
                if(a[i][j]=='?') v.push_back({i,j});
            }
        for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) tmp[i][j]=a[i][j];
        int flag=0;
        for(int i=0;i<v.size();i++)
        {
            if(check(v[i].x,v[i].y)!='?'&&check(v[i].x,v[i].y)!='!') tmp[v[i].x][v[i].y]=check(v[i].x,v[i].y);
            else continue;
        }
        for(int c=1;c<=100&&flag==0;c++)
        {
            for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) tmp[i][j]=a[i][j];
            for(int i=0;i<v.size();i++)
            {
                if(tmp[v[i].x][v[i].y]!='?') continue;
                int f=0;
                char ans=check(v[i].x,v[i].y);
                if(ans=='!'){tmp[v[i].x][v[i].y]='B';break;}
                if(ans=='?') tmp[v[i].x][v[i].y]=p[rand()%2];
                else tmp[v[i].x][v[i].y]=ans;
            }
            for(int i=(int)v.size()-1;i>0;i--)
            {
                if(tmp[v[i].x][v[i].y]!='?') continue;
                int f=0;
                char ans=check(v[i].x,v[i].y);
                if(ans=='!'){tmp[v[i].x][v[i].y]='B';break;}
                if(ans=='?') tmp[v[i].x][v[i].y]=p[rand()%2];
                else tmp[v[i].x][v[i].y]=ans;
            }
            int f=0;
            for(int i=1;i<n;i++)
                for(int j=1;j<m;j++)
                    if(tmp[i][j]==tmp[i+1][j+1]&&tmp[i][j+1]==tmp[i+1][j]&&tmp[i][j]!=tmp[i][j+1]) f=1;
            // for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(f==0&&tmp[i][j]=='?')
            // {
            //     f=1;
            //     cout<<n<<" "<<m<<"\n";
            //     for(int i=1;i<=n;i++,cout<<"\n") for(int j=1;j<=m;j++) cout<<a[i][j];
            //     for(int i=1;i<=n;i++,cout<<"\n") for(int j=1;j<=m;j++) cout<<tmp[i][j];
            //     for(int i=0;i<v.size();i++) cout<<'('<<v[i].x<<","<<v[i].y<<")"<<" ";
            //     cout<<"\n";
            //     cout<<check(i,j)<<"\n";
            //     for(int i=1;i<=n;i++,cout<<"\n") for(int j=1;j<=m;j++) cout<<tmp[i][j];
            // }
            if(f==1) continue;
            flag=1;
            output();
            break;
        }
        if(flag==0) cout<<"NO\n";
    }
}
/*
5
2 6
??????
W???B?
2 6
??????
W???B?
2 6
??????
W???B?
5 10
?WW????W??
BW?W???WBW
BW??WB????
???W??????
?W????B???
5 10
?WW????W??
BW?W???WBW
BW??WB????
???W??????
?W????B???
*/

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3644kb

input:

3
2 2
??
??
3 3
BW?
W?B
?BW
3 3
BW?
W?W
?W?

output:

YES
BW
BB
NO
YES
BWB
WWW
BWB

result:

ok ok (3 test cases)

Test #2:

score: 0
Accepted
time: 102ms
memory: 3712kb

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:

YES
BB
BW
WW
WW
BW
BB
BW
WW
BB
YES
BB
BB
BW
BW
WW
WW
NO
NO
YES
B
W
B
B
B
W
W
W
B
B
YES
BWWW
WWWB
WWWW
BWBW
WWBB
BWWW
WWWW
BWWW
BBWW
WBBW
YES
WBW
WWW
WBW
BBW
WWW
WWW
BWB
WWW
YES
W
B
W
W
YES
WBWB
WWWB
YES
BWWBBB
WWWWWB
YES
WBWWB
YES
BWWWWB
WWBWWB
BBBWWB
WWWWWW
YES
B
YES
BWB
BBB
WBB
WBB
WWB
BBB
BBW
WWW...

result:

ok ok (10000 test cases)

Test #3:

score: 0
Accepted
time: 99ms
memory: 3712kb

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:

NO
YES
W
B
W
W
W
B
W
B
B
W
YES
BWWW
BWBB
WWWW
BWWB
BBWW
WBWB
WWWW
WWWW
WBWB
YES
WW
WB
BB
YES
WWBBWWB
BWWBBWW
NO
NO
YES
WWB
BWB
BBB
BBW
WWW
YES
BWWWWWWWW
BBWWBWWWB
WWWBBBWWW
WWWWWWWWW
BWWWWWWBW
WWWWWWWWW
WWBBWWWWW
YES
WBWWWWB
WBBBWBB
WWWWWWW
BBWWWBW
WBWBWWW
WWWBWBB
WWWBWWW
WWWWWWB
BWWBBWW
YES
WW
WW
W...

result:

ok ok (10000 test cases)

Test #4:

score: 0
Accepted
time: 100ms
memory: 3712kb

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:

YES
BBBBBBW
BBBWBBW
WBBBBBB
WWWBBWW
WBWBBBB
BBWBBBB
BWWBBBW
YES
WWWWBW
WBWWBW
WWWWWW
WWWWWW
WWBBWB
WBBBBB
WBWWBB
WWWBBW
WWWWBW
WWBWWW
YES
WBBBWW
BBBBBB
YES
BBBWBWWW
YES
WB
WB
BB
BB
WW
YES
WWBWB
WWWWB
BWBWB
WWWWW
WWWWW
WWWBB
WWWWB
NO
YES
WWWW
WBWW
WBBB
WBBW
WWWW
BWWW
WWWB
WWBB
WWWW
BBWB
YES
BWWBBB
BB...

result:

ok ok (10000 test cases)

Test #5:

score: 0
Accepted
time: 99ms
memory: 3864kb

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:

YES
B
YES
WWWBBBBBB
WWBBWBWBW
BBBWWWWBW
WWWWWWWWW
WWWBBBWBW
WBWWBWWWW
BBWWWWBWB
YES
BBBBBBB
BWBWWBB
BBBBBBW
YES
BBBWWB
YES
W
W
W
B
W
W
B
NO
NO
YES
WBBBBBW
NO
YES
WBB
WBB
BBB
BBB
BWB
WWW
BBB
NO
YES
BBB
BWB
WWB
BBB
WBW
WBW
WBB
BBW
BBB
BWB
YES
WW
WB
BB
BW
BB
BW
BB
NO
YES
BB
BB
BB
BB
BB
BB
BB
WB
NO
YES
...

result:

ok ok (10000 test cases)

Test #6:

score: 0
Accepted
time: 98ms
memory: 3604kb

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:

YES
W
B
B
B
W
W
B
W
B
YES
WBBBWWWBWB
YES
BWWWWWBW
BBWWWBBW
BBBWBBBW
BBWWBBBB
WBBWBBBB
YES
WB
BB
WB
WB
WW
WW
YES
WWWBBWBBWB
YES
BWB
BBB
BBB
BBW
NO
YES
BWBWWB
NO
YES
B
B
B
W
B
B
B
B
B
YES
WWWWBWWBW
WWWBBWWWW
WWWWBWBWW
WBWWWWWWW
WWWWWBWWW
WBWWWBBWW
WWWWWWBWW
WWWWWWWWW
YES
WBBB
WWWW
WBBB
BBWB
WWWB
WBWW
...

result:

ok ok (10000 test cases)

Test #7:

score: 0
Accepted
time: 602ms
memory: 3768kb

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:

NO
NO
YES
WWWBWBBWWB
WWWBWWBWWB
BWWWWWWWWW
WWBWWWBWWW
WWBWWWWWWB
WWWWBWWWWW
WBWWWWWWBB
BBWWWWWWBB
BWWWWWBWWB
BWWWWBBWWW
NO
YES
BBBBWBBBWB
WWWBBBBWWB
BWBBWWBBWW
BBBBWWBBBW
BBWBBWBBWW
BBBBBBBBBB
BWWBWWBWBW
BBWBBWBWBB
BBBBBBBWWB
BBBWWBBBBB
YES
WBWBBBBBBB
BBBBWBBWBB
BWWBBBBBBW
BWBBWBBBBB
BWWBWWBBBB
BBBB...

result:

ok ok (10000 test cases)

Test #8:

score: 0
Accepted
time: 586ms
memory: 3688kb

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:

YES
WBBBBWBBBW
BBWBWWWBWW
BBWWWBBBBW
BBBBWBBBWW
WBWBBBWBBB
BBBBWBWWWW
BWWWWBBBBB
BBWBBBBWWW
BWWBBBWWBB
BWBBBBBBBW
NO
YES
WBWWWBWBBB
WWWBWBWBWW
WWWWWWWBWW
BWWBWWWWWW
WWBBWBBBWW
BWWBWWBWWW
WWWBWWWWBW
WWWWWBWWWW
WBWWWBBWBW
WBBWWWWWBB
YES
WWBWWWWWWW
WWWWBWWWWW
WWBWWWWWWB
WWBBWWBWWW
WWWBBWWWWW
WWWWBBBBWW...

result:

ok ok (10000 test cases)

Test #9:

score: 0
Accepted
time: 37ms
memory: 3628kb

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:

YES
WWWBBWBWBBWBBWBBWBBWWWWBWBBBWWBWBWWWBWWBBBBBBWBBBBBBBBBWBWWWBBWBBBWWWBBBBWWWWBBWBWWWWWWBWBBBBWWWWWBW
YES
BWBWWWBBBBBBWBWBWBWBWWWBBBBBBBBWBBBBBWWWBBBBBWWWWBBWBBBWWWBBBBWWWBWWBBBBWWBBBWBBWWWWBBWBBBBBBBBBBBWB
YES
WWWBBWBBBBBBBBBWBWBWBWWWBWBWBWBBBBBWBBBWWBWWWWBBWWBBBBBWBWBWBBBWWBWBBBWBBBBBWWWBWWWWBW...

result:

ok ok (10000 test cases)

Test #10:

score: 0
Accepted
time: 55ms
memory: 3656kb

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:

YES
W
B
B
B
B
B
B
W
B
B
B
B
W
B
B
B
W
B
B
W
B
B
W
W
B
W
W
B
W
B
W
W
B
W
W
B
W
B
B
W
W
W
B
B
B
B
W
B
W
W
B
B
B
B
B
W
B
W
B
W
W
B
W
B
W
B
W
W
B
B
B
B
B
W
B
B
W
B
B
W
B
W
W
B
B
W
B
B
W
B
W
W
B
B
B
B
B
W
B
W
YES
W
W
W
W
W
W
W
W
W
W
B
W
B
W
B
B
B
W
W
B
W
W
W
W
W
B
W
B
W
W
B
W
W
W
W
W
B
W
W
W
B
W
B
W
B
B
...

result:

ok ok (10000 test cases)

Test #11:

score: -100
Wrong Answer
time: 1196ms
memory: 3760kb

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:

NO
NO
NO
NO
NO
NO
NO
YES
WBWBWWWBBW
WBWWWBWWWW
WWWWWBWWWW
WWWWWWWWBB
WWWWBWWWWW
WWWWBWWWWW
WWWWBWWBWW
WBWWWWWWWW
WWWBBWWWWW
BBWWWWBWWW
BWWWBBBBBB
BBWWWWWWWW
BBWWWWBWBW
WWWWBWWWWW
WWWWBWBWBW
WWWBBWWWWW
WWWBWWWWWB
WWWBWBWWBB
WWWBWWWWWW
WWWBWWBWBW
BBBBWWWWBW
BBWWWWWBBW
BBBBWBWBWW
WWWWWWWWWB
WBWBWWWWWW
...

result:

wrong answer ans finds the answer, but out doesn't (test case 976)