Cod sursa(job #613478)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 27 septembrie 2011 16:15:12
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>

int n,m,v[2011],sol[2011];

void fct(int x,int y,int z)
{
    if(!v[x])
    {
        v[x]=y;
        sol[x]=z;
        return;
    }
    if(v[x]>y)
    {
        fct(y+1,v[x],sol[x]-z);
        v[x]=y;
        sol[x]=z;
        return;
    }
    if(v[x]<y)
        fct(v[x]+1,y,z-sol[x]);
}

int main()
{
    int i,x,y,z,j;
    freopen("reconst.in","r",stdin);
    freopen("reconst.out","w",stdout);
    scanf("%d %d\n",&n,&m);
    for(;m;--m)
    {
        scanf("%d %d %d\n",&x,&y,&z);
        fct(x,y,z);
    }
    for(i=n;i;--i)
        for(j=i+1;j<=v[i];++j)
            sol[i]-=sol[j];
    for(i=1;i<=n;++i)
        printf("%d ",sol[i]);
    printf("\n");
    return 0;
}