Cod sursa(job #1163210)

Utilizator bogobatBerbece Daniel bogobat Data 1 aprilie 2014 11:23:07
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,c[15002],ind,val,poz,a,b;
bool bin;
int op1(int a, int b){int s=0;
	while (b>0){
		s+=c[b];
		b-=(b&(b-1))^b;
	}
	while (a>0){
		s-=c[a];
		a-=(a&(a-1))^a;
	}
	return s;

}

void op2(int a, int b){

while (a<=n){
		c[a]+=b;
		a+=(a&(a-1))^a;
	}
}
int main()
{
    f>>n>>m;
    for(int i=1;i<=n;i++){ f>>val; op2(i,val);}
    for(int i=1;i<=m;i++){
            f>>bin;f>>ind>>val;;
        if(bin) g<<op1(ind-1,val)<<endl;
        else op2(ind,-val);

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