Pagini recente » Cod sursa (job #2036587) | Cod sursa (job #446894) | Cod sursa (job #2527371) | Cod sursa (job #1820997) | Cod sursa (job #319000)
Cod sursa(job #319000)
#include<stdio.h>
struct dop{long x,y,s;}a;
long n,m,i,poz[2050],sum[2050],suma[2050],x;
int main()
{
freopen("reconst.in","r",stdin);
freopen("reconst.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=m;++i)
{scanf("%ld%ld%ld",&a.x,&a.y,&a.s);
while(poz[a.y]>0&&a.y>=a.x)
if(a.x>poz[a.y]){x=poz[a.y];a.s=sum[a.y]-a.s;a.y=a.x-1;a.x=x;}
else if(a.x<poz[a.y]){a.s-=sum[a.y];a.y=poz[a.y]-1;}
else a.x=2,a.y=1;
if(a.x<=a.y)
poz[a.y]=a.x,sum[a.y]=a.s;}
suma[0]=0;
for(i=1;i<=n;++i)
{if(poz[i])printf("%ld ",(x=sum[i]-suma[i-1]+suma[poz[i]-1]));
else printf("0 ");
suma[i]=suma[i-1]+x;}
printf("\n");
return 0;
}