Cod sursa(job #1515459)

Utilizator xnonGafita Andrei xnon Data 1 noiembrie 2015 17:22:50
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
long long v[15002],s,n, m,cod,val,st,dr,ind;

int main(){
f >> n >> m;

for(int i = 1;i <=n;i++){
f >> val;
for(int ind = i;ind <= n;ind+=zeros(ind))
    v[ind]+=val;
}


while(m--){
    f >> cod;
    if(cod){
f >> st >> dr;
--st;
s = 0;
for(;dr > 0;dr-=zeros(dr))s+=v[dr];
for(;st > 0;st-=zeros(st))s-=v[st];
                g << s << '\n';}

    else {f >> ind >> val;
for(; ind <= n; ind+=zeros(ind))v[ind]-=val;
            }
        }
//f.close();
//g.close();
return 0;
}