Cod sursa(job #274482)

Utilizator mihaipoascaPoasca Mihai mihaipoasca Data 9 martie 2009 19:55:50
Problema Reconst Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#define Nmax 2005

FILE *fin=fopen("reconst.in","r"),
    *fout=fopen("reconst.out","w");

int N,M,A[Nmax];
long long S[Nmax];
struct bla{int b,s;} T[Nmax];

int main(){
    fscanf(fin,"%d %d",&N,&M);
    for(int i=1;i<=M;i++){
        int x,y,z;
        fscanf(fin,"%d %d %d",&x,&y,&z);
        while(T[x].b&&T[x].b!=y){
            z-=T[x].s;
            x=T[x].b+1;
        }
        if(T[x].b!=y)
            T[x].b=y,T[x].s=z;
    }

    for(int i=N;i;--i){
        if(T[i].b)
            A[i]=T[i].s-(S[i+1]-S[T[i].b+1]);
        S[i]=(long long)A[i]+S[i+1];
    }

    for(int i=1;i<=N;i++)
        fprintf(fout,"%d ",A[i]);

    fclose(fin);
    fclose(fout);
    return 0;

}