Submission

Status:
PP------------------

Score: 10

User: Winzzwz

Problemset: ผลบวก (ยาก)

Language: cpp

Time: 0.098 second

Submitted On: 2024-11-10 23:24:11

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int dp[1000100];
vector<pair<int,int>> change;
int n,q,t,c1,c2,x,y;
int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> dp[i];
        if (i > 0) dp[i] += dp[i-1];
    }
    cin >> q;
    while (q--) {
        cin >> t;
        while (t--) {
            cin >> c1 >> c2;
            change.push_back({c1,c2});
        }
        cin >> x >> y;
        int sz = change.size(), sum = 0;
        for (int i = 0; i < sz; i++) {
            int ii = change[i].first;
            int v = dp[ii];
            if (ii > 0) v -= dp[ii-1];
            if (ii >= x && ii <= y) sum += change[i].second-v;
        }
        sum += dp[y]-dp[x-1];
        cout << sum << "\n";
    }
    return 0;
}