Pagini recente » Cod sursa (job #869332) | Cod sursa (job #2270325) | Cod sursa (job #2268004) | Cod sursa (job #2526320) | Cod sursa (job #891141)
Cod sursa(job #891141)
#include<iostream>
#include<fstream>
using namespace std;
#define MAX 20000
int T[MAX];
void add(int d,int val)
{while(d<=MAX)
{T[d]=T[d]+val;
d=d+(d&(-d));}}
int query(int d)
{int sum=0;
while(d>0)
{sum=sum+T[d];
d=d-(d&(-d));}
return sum;
}
int main()
{ifstream f("datorii.in",ios::in);
ofstream g("datorii.out",ios::out);
int N,M,i,k,l,m;
f>>N>>M;
f.close();
for(i=1;i<=N;i++)
{f>>k;
add(i,k);}
for(i=1;i<=M;i++)
{f>>k>>l>>m;
if(k==0)
add(l,-m);
else g<<(query(m)-query(l-1))<<endl;}
g.close();
return 0;}