Pagini recente » Cod sursa (job #3320311) | Cod sursa (job #3351145) | Cod sursa (job #3347012) | Borderou de evaluare (job #3310701) | Cod sursa (job #3328674)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int v[15001],bat[131];
int n,m,a,b,c,s,cp;
int main()
{
fin>>n>>m;
cp=sqrt(n);
for(int i=0; i<n; i++ )
{
fin>>v[i];
bat[i/cp]+=v[i];
}
for(int j=1; j<=m; j++)
{
fin>>c>>a>>b;
a--;
if(c==0)
{
bat[a/cp]-=b;
v[a]-=b;
}
else
{
b--;
while(a%cp!=0 && a<=b)
{
s+=v[a];
a++;
}
while(a+cp<b)
{
s+=bat[a/cp];
a+=cp;
}
while(a<=b)
{
s+=v[a];
a++;
}
fout<<s<<'\n';
s=0;
}
}
return 0;
}