INPUT
3 3
aaa
#..
..#
OUTPUT
a..
#.a
.a#
INPUT
4 5
aaa.a
aa.a.
a.a..
...a.
OUTPUT
.....
a....
aaaa.
aaaaa
题意:落苹果,#不能往下落,让a落到最低。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
const int mod=1e9+10;
const int M=5e4 + 10;
char mapp[M][15];
int vis[M][15];
int main()
{
int n,m;
scanf("%d %d",&n,&m);
for(int i=1; i<=n; i++)
{
scanf("%s",mapp[i]);
}
for(int j=0; j<m; j++)
{
int sum=0;
for(int i=1; i<=n; i++)
{
if(mapp[i][j] == 'a')
sum++;
if(mapp[i][j] == '#')
{
vis[i][j] = 2;
for(int k=i-1; k>=1; k--)
{
if(sum == 0)
break;
else
vis[k][j] = 1,sum--;
}
}
}
for(int k=n; k>=1; k--)
{
if(sum == 0)
break;
else
vis[k][j]=1,sum--;
}
}
for(int i=1; i<=n; i++)
{
for(int j=0; j<m; j++)
{
if(vis[i][j] == 2)
printf("#");
else if(vis[i][j] == 1)
printf("a");
else
printf(".");
}
printf("\n");
}
return 0;
}