Cod sursa(job #349875)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 21 septembrie 2009 18:57:40
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
int n,m;
int v[1<<11],suma[1<<11];

void sol(int a, int b, int s)
{
	if(v[a]==0)
	{
		v[a]=b;
		suma[a]=s;
	}
	else
		if(v[a]<b)
			sol(v[a]+1,b,s-suma[a]);
		else
			if(v[a]>b)
			{
				sol(b+1,v[a],suma[a]-s);
				v[a]=b;
				suma[a]=s;
			}
}

int main()
{
	freopen("reconst.in","r",stdin);
	freopen("reconst.out","w",stdout);
	scanf("%d%d",&n,&m);
	int i,a,b,s,j;
	for(i=1;i<=m;i++)
	{
		scanf("%d%d%d",&a,&b,&s);
		sol(a,b,s);
	}
	for(i=n;i>=1;i--)
		for(j=i+1;j<=v[i];j++)
			suma[i]-=suma[j];
	for(i=1;i<=n;i++)
		printf("%d ",suma[i]);
	return 0;
}