Pagini recente » Cod sursa (job #2057526) | Cod sursa (job #2607813) | Cod sursa (job #233577) | Cod sursa (job #897711) | Cod sursa (job #711978)
Cod sursa(job #711978)
#include <fstream>
using namespace std;
#define val 16384
//16384
ifstream f("datorii.in"); ofstream g("datorii.out");
int v[val*2+5];
long long t;
int i, j, n, m, x, y, c, p;
void arb(int s, int d, int niv){
int m;
m=(s+d)/2;
if (x<=s && y >=d) t+=v[niv];
else {
if (x<=m) arb(s, m, 2*niv);
if (m+1<=y) arb(m+1, d, 2*niv+1);
}
}
int main (){
f >> n >> m;
for (i=1; i<=n; i++){
f>> x;
p=val+i-1;
while (p!=0){
v[p]+=x;
p=p/2;
}
}
for (i=1; i<=m; i++){
f >> p >> x >> y;
if (p==0){
p=val+x-1;
while (p!=0){
v[p]-=y;
p=p/2;
}
}
else {
t=0;
arb(1, val, 1);
g<<t<<"\n";
}
}
}