Pagini recente » Cod sursa (job #1200094) | Cod sursa (job #2638436) | Cod sursa (job #1007289) | Cod sursa (job #2033936) | Cod sursa (job #651712)
Cod sursa(job #651712)
#include<fstream>
#include<iostream>
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
int AIB[100],v[100],N;
void Add(int x, int quantity)
{
int i;
for (i = x; i <= N; i += zeros(i))
AIB[i] += quantity;
}
int Compute(int x)
{
int i, ret = 0;
for (i = x; i > 0; i -= zeros(i))
ret += AIB[i];
return ret;
}
int main()
{
int M,i,x,y,op;
ifstream intrare;
intrare.open("datorii.in");
ofstream iesire;
iesire.open("datorii.out");
intrare >> N >> M;
for(i=0;i<=N;i++)
{
v[i]=0;
AIB[i]=0;
}
for (i = 1; i<=N; i++)
{
intrare >> v[i];
Add(i,v[i]);
}
for (i=0; i<M ;i ++)
{
intrare >> op >> x >> y;
cout<<x<<" "<<y<<endl;
if (op == 0)
Add ( x, -y);
if (op ==1)
iesire << (Compute(y) - Compute (x-1))<<endl;
}
intrare.close();
iesire.close();
return 0;
}