Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Score: 100

User: mydKN

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

Language: cpp

Time: 0.057 second

Submitted On: 2025-05-02 17:55:53

#include<bits/stdc++.h>

using namespace std;

const int maxn = 1e6 + 5;

int n, q;
int fw[maxn];

void update(int idx, int val){
	for(;idx<=n;idx+=idx&-idx) fw[idx] += val;
}

int query(int idx){
	int sum = 0;
	for(;idx>0;idx-=idx&-idx) sum += fw[idx];
	return sum;
}

int main(){
	ios_base::sync_with_stdio(0);cin.tie(0);
	cin >> n;
	for(int i=1;i<=n;++i){
		int x;
		cin >> x;
		update(i, x);
	}
	cin >> q;
	while(q--){
		int t, l, r;
		cin >> t;
		while(t--){
			int idx, val;
			cin >> idx >> val;
			update(idx+1, val-(query(idx+1) - query(idx)));
		}
		cin >> l >> r;
		cout << query(r+1) - query(l) << "\n";
	}
}