Cod sursa(job #1515434)

Utilizator xnonGafita Andrei xnon Data 1 noiembrie 2015 16:55:26
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <cmath>
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
long long v[15002];

int main(){//cout << pow(2,0);
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m,ind,cod,val,st,dr;
f >> n >> m;
long long s1,s2;
for(int i = 1;i <=n;i++){
f >> val;
ind=i;
while(ind <= n){
    v[ind]+=val;
    ind += zeros(ind);
}
}

while(m--){
    f >> cod;
    if(cod == 0){
f >> ind >> val;
while(ind <= n){
    v[ind]-=val;
    ind += zeros(ind);
                }
                    }
    else {
s1 = 0;
s2 = 0;
for(f >> st && st--;st > 0;st-=zeros(st))s2+=v[st];
for(f >> dr;dr > 0;dr-=zeros(dr))s1+=v[dr];
                g << s1-s2 << endl;
                    }


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