#include #include #include int main(int argc, char const *argv[]){ int r, c, q; scanf("%d %d %d\n", &r, &c, &q); int* quers = malloc(q * sizeof(int)); char ** lines = malloc(r * sizeof(char *)); for (size_t i = 0; i < r; i++) { lines[r - i - 1] = malloc(c * sizeof(char)); scanf("%s\n", lines[r - i - 1]); } for (size_t i = 0; i < q; i++) { scanf("%d\n", &quers[i]); } int** sums = malloc(sizeof(int*) * r); for (size_t i = 0; i < r; i++) { sums[i] = malloc(sizeof(int) * c); } // for (size_t i = 0; i < r; i++) // { // for (size_t j = 0; j < c; j++) // { // printf("%c", lines[i][j]); // } // printf("\n"); // } //prepare starting rows for (size_t i = 0; i < c; i++) { int step = 0; int count = 0; for (size_t j = 0; j < r; j++) { if(lines[j][i] == '*'){ count++; } else { sums[step][i] = count; step++; } } while(step < r){ sums[step][i] = count; step++; } } // //print line results // for (size_t i = 0; i < r; i++) // { // for (size_t j = 0; j < c; j++) // { // printf("%d ", sums[i][j]); // } // printf("\n"); // } for (size_t i = 0; i < q; i++) { int pos = quers[i]; if(pos >= r) pos = r - 1; int sum = 0; for (size_t j = 0; j < c; j++) { sum += sums[pos][j]; } printf("%d\n", sum); } //sum important lines return 0; }