Cod sursa(job #1209123)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 17 iulie 2014 09:45:05
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#define DIM 15011
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,A[DIM];

void update(int p,int x){
    for(;p<=n;p+=p&(-p)) A[p]+=x;
}

int querry(int p){
    register int r=0;
    for(;p;p-=p&(-p)) r+=A[p];
    return r;
}

int main(void){
    register int i,j,t,x,y;

    f>>n>>m;
    for(i=1;i<=n;i++)
        f>>x,update(i,x);

    for(i=1;i<=m;i++){
        f>>t>>x>>y;
        switch(t){
            case 0:
                update(x,-y);
            break;
            default:
                g<<querry(y)-querry(x-1)<<"\n";
        }
    }

    f.close();
    g.close();
    return 0;
}