Cod sursa(job #990968)

Utilizator dariusdariusMarian Darius dariusdarius Data 29 august 2013 12:58:28
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<cstdio>  
int n,m,v[2011],sol[2011];
void update(int x,int y,int sum)
{
    if(!v[x])  {v[x]=y;sol[x]=sum;return;}
    if(v[x]>y)
    {
        update(y+1,v[x],sol[x]-sum);
        v[x]=y;
        sol[x]=sum;
        return;
    }
    if(v[x]<y)
    	update(v[x]+1,y,sum-sol[x]);
}
int main()
{
    int x,y,z;
    freopen("reconst.in","r",stdin);
    freopen("reconst.out","w",stdout);
    scanf("%d %d\n",&n,&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%d %d %d\n",&x,&y,&z);
        update(x,y,z);
    }
    for(int i=n;i>0;i--)
        for(int j=i+1;j<=v[i];j++)
            sol[i]-=sol[j];
    for(int i=1;i<=n;i++)
        printf("%d%c",sol[i],i==n?'\n':' ');
    return 0;
}