Pagini recente » Cod sursa (job #1714174) | Cod sursa (job #1142714) | Cod sursa (job #724825) | Cod sursa (job #880895) | Cod sursa (job #3282391)
#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,i,x,q,qq,t,st,dr,stt,drr,k,poz,b[100002],a[100001];
int main()
{
in>>n>>qq;
q=int(sqrt(n));
for(int i=1; i<=n; i++)
{
in>>a[i];
k=i/q+1;
if(i%q==0)
k--;
b[k]+=a[i];
}
for(int i=1; i<=qq; i++)
{
in>>t;
if(t==0)
{
in>>poz>>x;
a[poz]-=x;
k=poz/q+1;
if(poz%q==0)
k--;
b[k]-=x;
}
else
{
in>>st>>dr;
if(dr-st+1<3*q)
{
int sum=0;
for(int j=st; j<=dr; j++)
sum+=a[j];
out<<sum<<'\n';
}
else
{
k=st/q+1;
if(st%q==0)
k--;
stt=k+1;
k=dr/q+1;
if(dr%q==0)
k--;
drr=k-1;
int sum=0;
for(int j=stt; j<=drr; j++)
sum+=b[j];
for(int j=st; j<=(stt-1)*q; j++)
sum+=a[j];
for(int j=drr*q+1; j<=dr; j++)
sum+=a[j];
out<<sum<<'\n';
}
}
}
return 0;
}