Pagini recente » Cod sursa (job #1890223) | Cod sursa (job #993073) | Cod sursa (job #2244862) | Cod sursa (job #1313995) | Cod sursa (job #117962)
Cod sursa(job #117962)
#include<stdio.h>
FILE *f=fopen("datorii.in","r"),
*g=fopen("datorii.out","w");
long a[15009],i,j,n,m,k,p,q,po,s;
int main()
{ fscanf(f,"%ld %ld",&n,&m);
for(i=1;i<=n;++i) { fscanf(f,"%ld",&k);
p=i;q=k;
po=0;
while(p<=n){ a[p]+=q;
while(p&1<<po) ++po;
p+=1<<po;
++po;
}
}
for(i=1;i<=m;++i) { fscanf(f,"%ld %ld %ld",&k,&p,&q);
if(k==0) { po=0;
while(p<=n){ a[p]-=q;
while(p&1<<po) ++po;
p+=1<<po;
++po;
}
}
else { s=0;po=0;
while(q>0) { s+=a[q];
while(q&1<<po) ++po;
q-=1<<po;
++po;
}
--p;
po=0;
while(p>0) { s-=a[p];
while(p&1<<po) ++po;
p-=1<<po;
++po;
}
fprintf(g,"%ld\n",s);
}
}
fclose(f);
fclose(g);
return 0;
}