Uva 填充正方形
暴力出奇迹
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int maxn=10+5; 6 int T,n; 7 char S[maxn][maxn]; 8 9 int main() 10 { 11 cin>>T; 12 for(int kase=1;kase<=T;kase++) 13 { 14 cin>>n; 15 for(int i=0;i<n;i++) 16 for(int j=0;j<n;j++) 17 cin>>S[i][j]; 18 for(int i=0;i<n;i++) 19 for(int j=0;j<n;j++) 20 if(S[i][j]=='.') 21 { 22 for(char ch='A';ch<='Z';ch++) 23 { 24 bool ok=true; 25 if(i>0&&S[i-1][j]==ch) ok=false; 26 if(i<n-1&&S[i+1][j]==ch) ok=false; 27 if(j>0&&S[i][j-1]==ch) ok=false; 28 if(j<n-1&&S[i][j+1]==ch) ok=false; 29 if(ok) {S[i][j]=ch;break;} 30 } 31 } 32 printf("Case %d:\n",kase); 33 for(int i=0;i<n;i++) 34 { 35 for(int j=0;j<n;j++) 36 cout<<S[i][j]; 37 cout<<endl; 38 } 39 } 40 return 0; 41 }