Submission details
Task:Forest density
Sender:aalto26dm_033
Submission time:2026-09-21 16:33:24 +0300
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#10.00 sdetails
#20.30 sdetails
#30.30 sdetails

Code

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void add(int k, int x, vector<long long>& tree, int n) {
    k = k - 1 + n;
    tree[k] = x;
    for (int i = k/2; i >= 1; i /= 2) {
        tree[i] = tree[i * 2] + tree[i * 2 + 1];
    }
}

long long sum(int a, int b, const vector<long long>& tree, int n) {
    int l = a - 1 + n;
    int r = b + n; 
    long long res = 0;

    while (l < r) {
        if (l % 2 != 0) res += tree[l++];
        if (r % 2 != 0) res += tree[--r];
        l /= 2;
        r /= 2;
    }
    return res;
}

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

    vector<long long> segment_tree(n*2, 0);
    for (int i = n; i < n*2; i++) {
        cin >> segment_tree[i];
    }

    for(int i = n - 1; i > 0; i--){
        segment_tree[i] = segment_tree[i* 2] + segment_tree[i * 2 + 1];
    }

    int a,b,c;
    for(int i = 0; i < q; i++){
        cin >> a >> b >> c;
        if(a == 1){
            add(b, c, segment_tree, n);
        }
        else{
            cout << sum(b,c,segment_tree,n) << endl;
        }
    }
}

Test details

Test 1

Verdict:

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

correct output
10
14
5
7
8
...

user output
0
0
0
0
0
...

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

Test 2

Verdict:

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

correct output
41079
2824
15631
1548
8483
...

user output
0
0
0
0
0
...

Feedback: Incorrect character on line 1 col 1: expected "41079", got "0"

Test 3

Verdict:

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

correct output
1000000
1000000
1000000
1000000
1000000
...

user output
0
0
0
0
0
...

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