Cod sursa(job #1509131)

Utilizator arvlgeArdeleanu Vlad George arvlge Data 23 octombrie 2015 15:39:53
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#define ll long long
#define zeros(x) ((x ^ (x-1)) & x)
#include<fstream>

using namespace std;

ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m,val,s1,s2,g,h,cod;

int main(){
    in>>n>>m;
    ll a[n];
    for(int i=1;i<=n;i++){
        in>>val;
        for(int j=i;j<=n;j+=zeros(j)){
            a[j]+=val;
        }
    }
    //citire vector initial

    while(m--){
        in>>cod;
        if(cod){
            in>>g>>h;
            --g;
            for(;g>0;g-=zeros(g))
                s1+=a[g];
            for(;h>0;h-=zeros(h))
                s2+=a[h];
            out<<s2-s1;
        }
        else{
            in>>g>>h;
            for(;g<=n;g+=zeros(g))
                a[g]+=h;
        }

    }
    in.close();
    out.close();

    return 0;
}