Pagini recente » Cod sursa (job #1685654) | Cod sursa (job #1906959) | Cod sursa (job #165425) | Cod sursa (job #2801489) | Cod sursa (job #891166)
Cod sursa(job #891166)
#include<iostream>
#include<fstream>
using namespace std;
#define MAX 20000
int T[MAX];
void add(int d,int val)
{while(d<=MAX)
{T[d] += val;
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;
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))<<'\n';}
f.close();
g.close();
return 0;}