Pagini recente » Cod sursa (job #2493906) | Cod sursa (job #1444290) | Cod sursa (job #1231231) | Cod sursa (job #2984891) | Cod sursa (job #81777)
Cod sursa(job #81777)
#include <stdio.h>
int a[20000],c[20000],n,m,i,j,k,w,p,q,s1,s2;
int main()
{FILE *fin,*fout;
fin=fopen("datorii.in","r");
fout=fopen("datorii.out","w");
fscanf(fin,"%d %d",&n,&m);
for (i=1;i<=n;i++)
{fscanf(fin,"%d",&a[i]);
c[i]=0;
k=i&(i^(i-1));
for (j=i-k+1;j<=i;j++)
c[i]+=a[j];
}
for (i=1;i<=m;i++)
{fscanf(fin,"%d %d %d",&w,&p,&q);
if (w==0)
while (p<=n)
{c[p]=c[p]-q;
k=p&(p^(p-1));
p=p+k;
}
else {
s1=0;
while (q>0)
{s1+=c[q];
k=q&(q^(q-1));
q=q-k;
}
s2=0;
p--;
while (p>0)
{s2+=c[p];
k=p&(p^(p-1));
p=p-k;
}
fprintf(fout,"%d\n",s1-s2);
}
}
fclose(fin);
fclose(fout);
/*fout=fopen("datorii.out","w");
for (i=1;i<=n;i++)
fprintf(fout,"%d ",c[i]);
fclose(fout);
*/
return 0;
}