#include #include size_t solve(const std::vector>& terrain, size_t rows, size_t cols, size_t timePoint); int main() { size_t rows,cols = 0; size_t inputs = 0; std::cin >> rows >> cols >> inputs; std::vector> terrain; std::vector timePoints; terrain.reserve(rows); timePoints.reserve(inputs); for (size_t y = 0; y < rows; y++) { terrain.emplace_back(); terrain[y].reserve(cols); for (size_t x = 0; x < cols; x++) { char c = 0; std::cin >> c; terrain[y][x] = c; } } for (size_t i = 0; i < inputs; i++) { size_t point = 0; std::cin >> point; timePoints.push_back(point); } for (auto timePoint : timePoints) { std::cout << solve(terrain, rows, cols, timePoint) << std::endl; } } size_t solve(const std::vector>& terrain, size_t rows, size_t cols, size_t timePoint) { size_t total = 0; for (size_t col = 0; col < cols; col++) { size_t empty_found = 0; size_t row = 0; while (empty_found <= timePoint && row < rows) { if (terrain[rows - row - 1][col] == '.') { empty_found += 1; } else { total += 1; } row += 1; } } return total; }