Cod sursa(job #199935)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 21 iulie 2008 13:34:27
Problema Reconst Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>

#define NMAX 1000
#define FIN "reconst.in"
#define FOUT "reconst.out"

long n,m;
long x1[NMAX],x2[NMAX],x3[NMAX];

void introdu(long a,long b,long c)
{
if (!x1[a])
   {
   x1[a]=b;
   x2[a]=c;
   return;
   }
if (x1[a]>b)
   {
   introdu(b+1,x1[a],x2[a]-c);
   x1[a]=0;
   introdu(a,b,c);
   }
if (x1[a]<b)
   introdu(x1[a]+1,b,c-x2[a]);
}


int main()
{
long i,a,b,c;

freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);
scanf("%ld %ld",&n,&m);
while (m)
      {
      scanf("%ld %ld %ld",&a,&b,&c);
      introdu(a,b,c);
      --m;
      }
for (i=n;i>=1;i--)
     if (x1[i])
	{
	 for (a=i+1,c=0;a<=x1[i];++a)
	 c+=x1[a];
	 x3[i]=x2[i]-c;
	 }
for (i=1;i<=n;++i)
printf("%ld ",x3[i]);
return 0;
}