Pagini recente » Cod sursa (job #2416685) | Cod sursa (job #2974565) | Cod sursa (job #1451101) | Cod sursa (job #779772) | Cod sursa (job #3252333)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m, i, k, s[125], a[15005], j, x, y, c, stk, stp, drk, drp, ans, lg;
int main()
{
fin>>n>>m;
for (i=1; i<=n; i++) fin>>a[i];
k=int(sqrt(n))+1;
for (i=1; i<=k-1; i++) {
s[i]=0;
for (j=1; j<=k; j++) {
s[i]+=a[(i-1)*k+j];
}
}
for (i=k*(k-1)+1; i<=n; i++) s[k]+=a[i];
if (n%k!=0) lg++;
for (i=1; i<=m; i++) {
fin>>c>>x>>y;
if (c==0) {
if (x%k==0) s[x/k]-=y;
else s[x/k+1]-=y;
a[x]-=y;
}
else {
stk=(x+k-1)/k;
if (x%k==0) stk++;
drk=(y+k-1)/k;
if (y%k==1) drk--;
ans=0;
while (x%k!=1) {
ans+=a[x];
x++;
}
while (y%k!=0) {
ans+=a[y];
y--;
}
for (j=stk; j<=drk; j++) ans+=s[j];
fout<<ans<<'\n';
}
}
return 0;
}