Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- int t[100000];
- int kubelki [320];
- int n = 317;
- void Update (int i, int x){
- int zmiana = x - t[i];
- t[i-1] = x;
- int g = i / n;
- kubelki[g] = kubelki[g] + zmiana;
- }
- long long Query (int p, int k){
- long long suma = 0;
- int l,r;
- l = p;
- r = k;
- int g = l / n; //lewy
- int f = (g+1)*n; //lewy
- int c = r / n; // prawy
- int o = (c+1)*n; //prawy
- if (r <= n){
- for (int i = p-1; i <= k-1; i++ ){
- suma += t[i];
- }
- return suma;
- }
- for (int i = l; i <= f; i++ ){
- suma += t[i]
- }
- for (int i = o; i <= r; i++){
- suma += t[i];
- }
- if (c != g){
- for (int i = g+1; i <= c-1; i++){
- suma += kubelki [i];
- }
- }
- return suma;
- }
- int main(){
- int x;
- cin >> x;
- string s;
- int a,b;
- for (int i = 0; i < x; i++){
- cin >> s;
- cin >> a >> b;
- if (s == "Query"){
- cout << Query(a,b) << endl;
- continue;
- }
- Update (a,b);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement