Pagini recente » Cod sursa (job #2890557) | Cod sursa (job #640396) | Cod sursa (job #1925586) | Cod sursa (job #623178) | Cod sursa (job #2205450)
#include <bits/stdc++.h>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int v[100005], s[100005], n;
void up(int i,int k)
{
for(;i<=n;i+=i&-i)
v[i]-=k;
}
long long sum(long long a)
{
long long s=0;
for(;a>0;a-=a&-a)
s+=v[a];
return s;
}
int main()
{
int q, m, i, p, a, b;
f>>n>>m;
for(i=1;i<=n;i++)
{
f>>v[i];
s[i]=s[i-1]+v[i];
v[i]=s[i]-s[i-(i&-i)];
}
for(i=0;i<m;i++)
{
f>>p;
if(p==0)
{
f>>a>>b;
up(a,b);
}
else
if(p==1)
{
f>>a>>b;
g<<sum(b)-sum(a-1)<<'\n';
}
}
return 0;
}