Pagini recente » Cod sursa (job #1812629) | Cod sursa (job #633271) | Cod sursa (job #3178552) | Cod sursa (job #1319618) | Cod sursa (job #2738126)
#include <bits/stdc++.h>
#define op(x) (x^(x-1))&x
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m;
int aib[15005];
void adauga(int val,int poz)
{
for(int i=poz; i<=n; i+=op(i))
{
aib[i]+=val;
}
}
int querry(int poz)
{
int suma=0;
for(int i=poz; i>=1; i-=op(i))
{
suma+=aib[i];
}
return suma;
}
int main()
{
f>>n>>m;
for(int i=1; i<=n; i++)
{
int x;
f>>x;
adauga(x,i);
}
for(int i=1; i<=m; i++)
{
int cerinta,x,y;
f>>cerinta>>x>>y;
if(cerinta==0)
{
adauga(-y,x);
continue;
}
if(cerinta==1)
{
g<<querry(y)-querry(x-1)<<'\n';
}
}
}