Untitled
unknown
plain_text
3 years ago
1.5 kB
6
Indexable
#include <stdio.h> char A[50][50]; void B(int n, int m); void C(int n); int N,M; int main(void){ int a=0; scanf("%d %d",&N,&M); for(int n=1;n<=N;n++){ scanf("%s",A[n]); } for(int m=0;m<M;m++){ A[N+1][m]='x'; } for(int n=N;n>=1;n--){ for(int m=0;m<M;m++){ B(n,m); } } for(int n=N;n>=1;n--){ a=0; for(int m=0;m<M;m++){ if(A[n][m]=='x'){ a++; } } if(a==M){ for(int m=0;m<M;m++){ A[n][m]='.'; } } } for(int n=N;n>=1;n--){ C(n); } for(int n=1;n<=N;n++){ for(int m=0;m<M;m++){ printf("%c",A[n][m]); } printf("\n"); } return 0; } void B(int n, int m){ if(A[n][m]=='o' && A[n+1][m]=='.'){ A[n][m]='.'; A[n+1][m]='o'; B(n+1,m); } else if(A[n][m]=='o' && A[n+1][m]=='x'){ A[n][m]='x'; } } void C(int n){ int b=0,c=0; for(int m=0;m<M;m++){ if(A[n][m]=='x'){ b++; } if(A[n+1][m]=='.'){ c++; } } if(b!=0 && c==M){ for(int m=0;m<M;m++){ A[n+1][m]=A[n][m]; } for(int m=0;m<M;m++){ A[n][m]='.'; } C(n+1); } }
Editor is loading...