Cod sursa(job #1329949)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 30 ianuarie 2015 01:56:45
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#define DIM 15005
#define bit(x) ((x&(x-1))^x)
using namespace std;

ifstream fin("datorii.in");
ofstream fout("datorii.out");
int N,M,aib[DIM],x,a,b;
void add(int x,int y){
    for(int i=x;i<=N;i+=bit(i))
        aib[i]+=y;
}
int suma(int x){
    int s=0;
    for(int i=x;i>0;i-=bit(i))
        s+=aib[i];
    return s;
}
int main(){
    fin>>N>>M;
    for(int i=1;i<=N;i++){
        fin>>x;
        add(i,x);
    }
    while(M--){
        fin>>x>>a>>b;
        if(x==0)
            add(a,-b);
        else
            fout<<suma(b)-suma(a-1)<<"\n";
    }
    fin.close();fout.close();
    return 0;
}