📄 pku2339.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
char Map[101][101];
char Map2[101][101];
int r, c, n;
int cmp(char a, char b)
{
int dis;
dis = a - b;
if (dis != 3 && dis != -3)
{
dis = -dis;
}
if (dis > 0)
{
return 1;
}
else if (dis < 0)
{
return -1;
}
return 0;
}
void calc()
{
int i, j;
while (n--)
{
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
{
Map2[i][j] = '.';
}
}
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
{
if (i + 1 < r && Map[i][j] != Map[i + 1][j])
{
if (cmp(Map[i][j], Map[i + 1][j]) > 0)
{
Map2[i + 1][j] = Map[i][j];
}
else
{
Map2[i][j] = Map[i + 1][j];
}
}
if (j + 1 < c && Map[i][j] != Map[i][j + 1])
{
if (cmp(Map[i][j], Map[i][j + 1]) > 0)
{
Map2[i][j + 1] = Map[i][j];
}
else
{
Map2[i][j] = Map[i][j + 1];
}
}
}
}
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
{
if (Map2[i][j] != '.')
{
Map[i][j] = Map2[i][j];
}
}
}
}
}
int main()
{
int T, i, j;
scanf("%d", &T);
while (T--)
{
scanf("%d%d%d", &r, &c, &n);
for (i = 0; i < r; i++)
{
scanf("%s", Map[i]);
}
calc();
for (i = 0; i < r; i++)
{
printf("%s\n", Map[i]);
}
printf("\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -