Submission details
Task:Forest density
Sender:aalto26dm_030
Submission time:2026-09-21 17:49:58 +0300
Language:C++ (C++23)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.13 sdetails
#3ACCEPTED0.10 sdetails

Code

#include <iostream>
#include <vector>


int main(int argc, char** argv) {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int n, q;
    std::cin >> n >> q;

    std::vector<std::vector<long>> sum_until(n+1, std::vector<long>(n+1, 0));
    for (int i=0; i<n; i++) {
        char c;
        int sum = 0;
        for (int j=0; j<n; j++) {
            std::cin >> c;
            sum += (c=='*') ? 1 : 0;
            sum_until.at(i+1).at(j+1) = sum_until.at(i).at(j+1) + sum;
        }
    }

    for (int i=0; i<q; i++) {
        int a, b, c, d;
        std::cin >> a >> b >> c >> d;

        int result = sum_until.at(c).at(d) - sum_until.at(a-1).at(d) - sum_until.at(c).at(b-1) + sum_until.at(a-1).at(b-1);

        std::cout << result << '\n';
    }

}

Test details

Test 1

Verdict: ACCEPTED

input
10 100
**.*.*.**.
*.**.*..*.
.*****.**.
**....***.
...

correct output
10
14
5
7
8
...

user output
10
14
5
7
8
...

Test 2

Verdict: ACCEPTED

input
1000 200000
**.**.****..**.***..**.***.**....

correct output
41079
2824
15631
1548
8483
...

user output
41079
2824
15631
1548
8483
...

Test 3

Verdict: ACCEPTED

input
1000 200000
******************************...

correct output
1000000
1000000
1000000
1000000
1000000
...

user output
1000000
1000000
1000000
1000000
1000000
...