Cod sursa(job #1509141)

Utilizator arvlgeArdeleanu Vlad George arvlge Data 23 octombrie 2015 15:49:53
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 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>>g>>h;
        if(cod){
            g--;
            for(;g>0;g-=zeros(g))
                s1+=a[g];
            for(;h>0;h-=zeros(h))
                s2+=a[h];
            out<<s2-s1;
        }
        else{
            for(;g<=n;g+=zeros(g))
                a[g]-=h;
        }

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

    return 0;
}