Submission details
Task:Forest density
Sender:aalto26dm_017
Submission time:2026-09-21 16:52:46 +0300
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#10.00 sdetails
#20.28 sdetails
#30.31 sdetails

Code

#include <iostream>
#include <vector>

using namespace std;

int main(){
    int n, q;
    cin >> n >> q;

    vector<vector<char>> mat(n, vector<char>(n));
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            
            cin>> mat[i][j];
        }
    }

    vector<vector<int>> queries(q, vector<int>(4));
    for (int i=0;i<q;i++){
        cin >> queries[i][0] >> queries[i][1] >> queries[i][2] >> queries[i][3];
    }

    vector<vector<int>> trees(n, vector<int>(n));
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            int tree=mat[i][j]=='*';
            if (i>0){
                tree+=trees[i-1][j];
            }
            if (j>0){
                tree+=trees[i][j-1];
            }

            if (i>0 && j>0){
                tree-=trees[i-1][j-1];
            }
            trees[i][j]=tree;
            //cout << trees[i][j];
        }
        //cout << '\n';
    }
    for (auto &q: queries){
        vector<int> coord1={min(q[0],q[2])-2, min(q[1],q[3])-2};
        vector<int> coord2={max(q[0],q[2])-2, max(q[1],q[3])-1};
        int val1=trees[coord2[0]][coord2[1]];
        int val2=coord1[0]>=0 ? trees[coord1[0]][coord2[1]] : 0;
        int val3=coord1[1]>=0 ? trees[coord2[0]][coord1[1]] : 0;
        int val4=0;
        if (coord1[0]>=0){
            if (coord1[1]>=0){
                val4=trees[coord1[0]][coord1[1]];
            } 
        }
        cout << val1-val2-val3+val4+1<<'\n';
    }
}

Test details

Test 1

Verdict:

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

correct output
10
14
5
7
8
...

user output
8
10
1
5
5
...

Feedback: Incorrect character on line 1 col 1: expected "10", got "8"

Test 2

Verdict:

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

correct output
41079
2824
15631
1548
8483
...

user output
41005
2812
15609
1521
8422
...

Test 3

Verdict:

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

correct output
1000000
1000000
1000000
1000000
1000000
...

user output
999001
999001
999001
999001
999001
...

Feedback: Incorrect character on line 1 col 1: expected "1000000", got "999001"