Submission

Status:
P-PPPPPPPPPPPPPPPPPP

Score: 95

User: Khiem

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

Language: cpp

Time: 0.107 second

Submitted On: 2024-09-29 17:10:48

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
signed main(){
	int n; scanf("%d", &n);
	vector<ll>a(n+1);
	vector<ll>bit(n+1, 0);
	for(int i = 1; i<=n; ++i){
		ll x; scanf("%lld", &x);
		for(int j = i; j<=n; j+=j&-j) bit[j] += x;
		a[i] = x;
	}
	int q; scanf("%d", &q);
	while(q--){
		int t; scanf("%d", &t);
		while(t--){
			int i; ll v; scanf("%d %lld", &i, &v); ++i; 
			for(int j = i; j<=n; j+=j&-j) bit[j] += v-a[i];
			a[i] = v; 
		}
		int x, y; scanf("%d %d", &x, &y); ++x; ++y; if(x > y) swap(x, y);
		ll r = 0;
		for(--x; x; x-=x&-x) r -= bit[x];
		for(; y; y-=y&-y) r += bit[y];
		printf("%lld\n", r);
	}
}