UVA - 11520 Fill the Square
1074 ワード
各位置が周囲と等しくないようにマトリクスを記入する
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 20;
int n;
char map[MAXN][MAXN];
char fill(int row,int col){
for (int ch = 'A'; ch <= 'Z'; ch++)
if (ch != map[row][col-1] && ch != map[row][col+1]
&& ch != map[row+1][col] && ch != map[row-1][col])
return ch;
}
void solve(){
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (map[i][j] == '.')
map[i][j] = fill(i,j);
for (int i = 1; i <= n; i++)
printf("%s
",map[i]+1);
}
int main(){
int t,cas=1;
scanf("%d",&t);
while (t--){
scanf("%d",&n);
memset(map,0,sizeof(map));
for (int i = 1; i <= n; i++)
scanf("%s",map[i]+1);
printf("Case %d:
",cas++);
solve();
}
return 0;
}