1 条题解

  • -1
    @ 2022-8-22 19:12:42
    #include<bits/stdc++.h>
    
    using namespace std;
    char a[105][105];
    char s[105][105];
    int n,m; 
    void g(int x){
    	int f;
    	for(int i=0;i<n;i++){
    		if(i%2==0)f=x;
    		else f=1-x;
    		for(int j=0;j<m;j++){
    			if(f==0)s[i][j]='W';
    			else s[i][j]='B';
    			f=1-f;
    		}
    	}
    }
    int c(){
    	for(int i=0;i<n;i++){
    		for(int j=0;j<m;j++){
    			if(a[i][j]=='?'||a[i][j]==s[i][j])continue;
    			else{
    				return 0;
    			} 
    		}
    	}
    	return 1;
    }
    int main(){
    	while(cin>>n>>m){
    		for(int i=0;i<n;i++){
    			for(int j=0;j<m;j++){
    				cin>>a[i][j];
    			}
    		}
    		int ok=0;	
    		if(c())ok=1;
    		g(0);
    		if(c())ok=1;
    		if(ok)cout<<"Possible"<<endl;
    		else cout<<"Impossible"<<endl;
    	}
    }
    
    • 1

    信息

    ID
    128
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    35
    已通过
    11
    上传者