Pagini recente » Cod sursa (job #3284906) | Cod sursa (job #293479) | Cod sursa (job #2875189) | Cod sursa (job #1045832) | Cod sursa (job #1036443)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fi("datorii.in");
ofstream fo("datorii.out");
int v[15002],w[15002],n,m,x,y,z;
int main()
{
fi>>n>>m;
int r=sqrt(n);
for (int i=1;i<=n;i++) {
fi>>v[i];
if ((i/r+1)*r!=i)
w[(i+1)/r]+=v[i];
else
w[i/r]+=v[i];
}
for (int i=1;i<=m;i++) {
fi>>x>>y>>z;
if (x==0) {
v[y]-=z;
w[y/r]-=z;
}
else {
int s=0;
while ((y-1)%r!=0) {
s+=v[y];
y++;
}
while ((y/r+1)*r<=z) {
s+=w[y/r+1];
y+=r;
}
while (y<=z) {
s+=v[y];
y++;
}
fo<<s<<'\n';
}
}
return 0;
}