#include #include int main() { int n, m ,q; scanf("%d %d %d\n",&n,&m,&q); char *grid = malloc(m); for(int nn = 0; nn < n; nn++) { for (int mm = 0; mm < m; mm++) { grid[nn*m+mm] = getchar(); } getchar(); // newline } int t[q]; for (int qq = 0; qq < q; qq++) { int time; scanf("%d", &time); t[qq]=time; } // for (int i = n-1; i >=0; i--) { // for (int j = 0; j < m; j++) { // //printf("%d: %c",i*m+j,grid[i*m+j]); // printf("%c", grid[i*m+j]); // } // printf("\n"); // } // for (int qq = 0; qq < q; qq++){ // printf("%d\n", t[qq]); // } // printf("--------\n"); // printf("%d", t[q-1]); int ti=0; for (int i = 0; i <= t[q-1]; i++) { int res = 0; // fall // printf("time = %d\n", t[i]); // for (int i = n-1; i >=0; i--) { // for (int j = 0; j < m; j++) { // //printf("%d: %c",i*m+j,grid[i*m+j]); // printf("%c", grid[i*m+j]); // } // printf("\n"); // } if (t[ti]==i) { // count for (int mm = 0; mm < m; mm++) { //printf("%d %d %d %d\n", l, m, mm, l*m+mm); for (int nn = n-1; nn >= 0; nn--){ // printf("%d: %c\n",nn*m+mm, grid[nn*m+mm]); //printf("%d\n", nn*m+mm); if (grid[nn*m+mm]=='.'){ break; } res++; } } printf("%d\n", res); ti++; // printf("%d", ti); } for (int nn = n-1; nn > 0;nn--) { for (int mm = 0; mm < m; mm++) { //printf("%c", grid[nn*m+mm]); //printf("%d %d\n", nn*m+mm, (nn-1)*m+mm); if (grid[nn*m+mm] == '.' && grid[(nn-1)*m+mm] == '*'){ grid[nn*m+mm] = '*'; grid[(nn-1)*m+mm] = '.'; // printf("%d pada", (nn-1)*m+mm); } } // printf("\n"); } } free(grid); return 0; }