Pagini recente » Cod sursa (job #2643713) | Cod sursa (job #1922666) | Cod sursa (job #2874028) | Cod sursa (job #1160530) | Cod sursa (job #284332)
Cod sursa(job #284332)
#include <stdio.h>
unsigned long int q,w,n,m,k,nr=0,s[150],i,j,x,y,z,ok1[150],ok2[150];
void platire()
{for (q=1;q<nr;q++)
for (w=q+1;w<=nr;w++)
if (ok1[q]>ok1[w]) {k=ok2[q];ok2[q]=ok2[w];ok2[w]=k;k=ok1[q];ok1[q]=ok1[w];ok1[w]=k;}
k=0;
for (q=1;q<nr;q++)
{k+=ok2[q];
for (w=ok1[q];w<ok1[q+1];w++) s[w]=s[w]-k;
}
for (q=ok1[nr]+1;q<=n;q++) ok2[q]-=k;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%uld %uld",&n,&m);s[0]=0;
for (i=1;i<=n;i++) { scanf("%uld",&x);s[i]=s[i-1]+x; }
for (i=1;i<=m;i++) { scanf("%uld %uld %uld",&x,&y,&z); if(x==0) {nr+=1;ok1[nr]=y;ok2[nr]=z;} else {platire;printf("%uld \n",s[z]-s[y-1]);}}
return 0;}