Cod sursa(job #911392)

Utilizator apopeid13Apopeid Alejandro apopeid13 Data 11 martie 2013 16:32:58
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#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;}