Pagini recente » Cod sursa (job #532204) | Cod sursa (job #2139657) | Cod sursa (job #1646522) | Cod sursa (job #787886) | Cod sursa (job #197810)
Cod sursa(job #197810)
#include<stdio.h>
struct nod{ long a;long b;long s;nod *prev;nod *next;};
nod *p,*u,*q,*paux;
long sum[2005],x[2005],mare,mic,aux,i,m,n,M,gata,aa,bb,ss,smic,smare;
int main()
{
freopen("reconst.in","r",stdin);
freopen("reconst.out","w",stdout);
scanf("%ld%ld",&n,&m);
p=new nod;u=new nod;M=2001;
p->a=0;p->b=0;p->s=0;p->next=u;p->prev=0;
u->a=M;u->b=M;u->s=0;u->next=0;u->prev=p;
for(;m;m--)
{
scanf("%ld%ld%ld",&aa,&bb,&ss);
gata=0;q=p;
while(!gata)
{ if(q->next->a<=aa)
{ q=q->next;continue;}
if(q->a<aa)
{ paux=new nod;
paux->a=aa;paux->b=bb;paux->s=ss;
paux->prev=q;paux->next=q->next;
q->next->prev=paux;q->next=paux;
gata=1;continue;
}
if(q->b==bb){gata=1;continue;}
mic=q->b;mare=bb;smic=q->s;smare=ss;
if(mic>mare){aux=mic;mic=mare;mare=aux;
aux=smic;smic=smare;smare=aux;}
q->b=mic;q->s=smic;aa=mic+1;bb=mare;ss=smare-smic;
}
}
q=u->prev;
for(i=n;i>=1;i--)
{ if(i!=q->a){ sum[i]=sum[i+1];continue;}
sum[i]=sum[(q->b)+1]+q->s;
x[i]=sum[i]-sum[i+1];
q=q->prev;
}
for(i=1;i<=n;i++)
printf("%ld ",x[i]);
return 0;
}