Cod sursa(job #563509)

Utilizator SpiderManSimoiu Robert SpiderMan Data 25 martie 2011 12:45:14
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
# include <cstdio>

const char *FIN = "reconst.in", *FOU = "reconst.out" ;
const int MAX = 2005 ;

int X[MAX], V[MAX] ;
int N, M ;

void solve ( int x, int y, int sum ) {
    if ( X[x] == 0 ) {
        X[x] = y, V[x] = sum ;
    } else if ( X[x] < y ) {
        solve ( X[x] + 1, y, sum - V[x] ) ;
    } else if ( X[x] > y ) {
        solve ( y + 1, X[x], V[x] - sum ) ;
    }
}

int main ( void ) {
    freopen ( FIN, "r", stdin ) ;
    freopen ( FOU, "w", stdout ) ;

    scanf ( "%d %d", &N, &M ) ;
    for ( int i = 1, x, y, sum ; i <= M; ++i ) {
        scanf ( "%d %d %d", &x, &y, &sum ) ;
        solve ( x, y, sum ) ;
    }
    for ( int i = N - 1; i ; --i ) {
        for ( int j = i + 1; j <= X[i]; ++j ) {
            V[i] -= V[j] ;
        }
    }
    for ( int i = 1; i <= N; ++i ) {
        printf ( "%d ", V[i] ) ;
    }
}