Cod sursa(job #1047295)
Utilizator | Vlad Rochian vladrochian | Data | 4 decembrie 2013 10:37:14 |
---|---|---|---|
Problema | Datorii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <fstream>
using namespace std;
int n,m,a[15001];
int query(int p)
{
int s=0;
for(int i=p;i>=1;i-=i&-i)
s+=a[i];
return s;
}
void add(int p,int val)
{
for(int i=p;i<=n;i+=i&-i)
a[i]+=val;
}
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int main()
{
int i,x,y,z;
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>x;
add(i,x);
}
while(m--)
{
fin>>x>>y>>z;
if(x)
fout<<query(z)-query(y-1)<<"\n";
else
add(y,-z);
}
return 0;
}