#include #include #include #include #include int H,V,Q; void preprocess(std::vector> &arr, std::unordered_map &res) { std::vector> vec; std::unordered_map when_fall{}; for (int w = 0; w < V; ++w) { int t = 0; for (int i = arr.size() - 1; i >= 0; --i) { if (arr[i][w] == '.') { ++t; continue; } when_fall[t]++; // std::cout << when_fall[t] << '\n'; } // for( const auto& it : when_fall ){ //// std::cout << "time: " << it.first << ", " << it.second << "\n"; // } vec.push_back(when_fall); when_fall.clear(); } std::vector mmm; for (int i = 0; i < (int)arr.size(); ++i) { int acc = 0; for (auto& v : vec) { acc += v[i]; } mmm.push_back(acc); res[i] += acc; if (i > 0) { res[i]+= res[i-1]; } } // for (auto i : res) { // std::cout << i.first << ", " << i.second <<", "; // } // std::cout << "\n"; } int main() { std::cin >> H >> V >> Q; std::cin.ignore(); std::vector> arr(H, std::vector(V, 0)); for (int i = 0; i t; preprocess( arr, t ); for (int i = 0; i < Q; ++i) { int q; std::cin >> q; if (q>= H) { std::cout << t[H-1]<<'\n'; } else { std::cout << t[q] << '\n'; } } return 0; }