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 }

 

posted @ 2016-06-05 15:16  InWILL  阅读(193)  评论(0编辑  收藏  举报