Cod sursa(job #2755982)

Utilizator pizzandreeaCiurescu Andreea pizzandreea Data 28 mai 2021 22:04:55
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
 
using namespace std;
 
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
 
int n, m;
int v[15001], aib[15001];

void add (int k, int val){ 
    
    for(int i = k; i <= n; i += i & (-i)){
        aib[i] += val;
    }
}

void read(){
    
    fin >> n >> m;
    for(int i = 1; i <= n; i++)
    {
        fin>>v[i];
        add(i, v[i]);
    }
}




int sum(int k){

    int s = 0;
    for(int i= k; i >= 1; i -= i&(-i)){
        s += aib[i];
    }

    return s;
}


int main()
{
    int task, x, y;

    read();

    for(int i = 1; i <= m; i++)
    {
        fin >> task >> x >> y;

        if(task == 0){
            add(x, -y);
        }

        else{
            fout << sum(y) - sum(x-1) << "\n";
        }
    }

    return 0;
}