Pagini recente » Cod sursa (job #112841) | Cod sursa (job #1387798) | Cod sursa (job #1653646) | Cod sursa (job #467036) | Cod sursa (job #113061)
Cod sursa(job #113061)
#include <fstream.h>
#include <math.h>
#define N 15001
int main()
{ifstream fi("datorii.in");
ofstream fo("datorii.out");
long n,m,a[N],e[125],i,j,g,p,q,f,d;
memset(a,0,sizeof(a));
memset(e,0,sizeof(e));
fi>>n>>m;
d=sqrt(n)+1;//nr de intervale
for (i=1;i<=n;i++)
{fi>>g;a[i]=a[i-1]+g;}
for (i=1;i<=m;i++)
{fi>>f>>p>>q;
if(f)
{fo<<a[q]+e[(int)ceil((float)q/(float)d)]-a[p-1]-e[(int)ceil((float)(p-1)/(float)d)]<<endl;
}
else
{if(p%d==1)
{for (j=p/d+1;j<=d;j++)
{e[j]-=q;}
}
else
{for (j=p;j<=ceil((float)p/(float)d)*d;j++)
{a[j]-=q;
}
for(j=ceil((float)p/(float)d)+1;j<=d;j++)
{e[j]-=q;}
}
}
}
fi.close();
fo.close();
return 0;
}