Pagini recente » simulare_oji_2016 | Cod sursa (job #1644898) | Cod sursa (job #2044469) | Cod sursa (job #364589) | Cod sursa (job #344580)
Cod sursa(job #344580)
#include <stdio.h>
using namespace std;
int main() {
int n, m, p[15000],k=0, s[15000], i, j, x, y, z, f, t, s1, s2;
FILE *f1 = fopen("datorii.in", "r");
FILE *f2 = fopen("datorii.out", "w");
fscanf(f1, "%d%d", &n, &m);
p[0]=0;
for(i=1; i<=n; i++) {
fscanf(f1, "%d", &j);
p[i]=p[i-1]+j;
}
for(i=1;i<=n;i++) {
s[i]=p[i]-p[i-((i^(i-1))&i)];
}
for(i=1; i<=m; i++) {
fscanf(f1, "%d%d%d", &x, &y, &z);
if(x==0) {
f=y;
while(f<=n){
s[f]-=z;
f+=(f^(f-1))&f;
}
}
else {
f=y-1;
s1=0;s2=0;
while(f){
s1+=s[f];
f-=(f^(f-1))&f;
}
f=z;
while(f){
s2+=s[f];
f-=(f^(f-1))&f;
}
fprintf(f2, "%d\n", s2-s1);
}
}
fclose(f1);
fclose(f2);
return 0;
}