题目描述
小红正在玩一个“炸砖块”游戏,游戏的规则如下:
初始有一个n∗m的砖块矩阵。小红会炸k次,每次会向一个位置投炸弹,如果这个位置有一个砖块,则砖块消失,上方的砖块向下落。
小红希望你画出最终砖块的图案。
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
char g[1005][1005];
int arr[1005];
int n,m,k;
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
g[i][j]='*';//先输入原始的地图
while(k--)//炸弹次数
{
int x,y;
cin>>x>>y;
if(g[x][y]=='*')//如果炸弹炸到的是砖头
{
if(g[x-1][y]=='*')//如果砖头上面有砖头
{
for(int i=1;;i++)//一直便利更改数据
{
if(g[i][y]=='*')
{
g[i][y]='.';
break;
}
}
}
else g[x][y]='.';//如果这个砖就是最顶上的
//那么我们直接把他变成"."
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
cout<<g[i][j];
cout<<endl;
}
return 0;
}