Cod sursa(job #475698)

Utilizator SpiderManSimoiu Robert SpiderMan Data 8 august 2010 01:29:08
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
# include <cstdio>

const char FIN[] = "oz.in", FOU[] = "oz.out" ;

int S[10003] ;
int N, M ;

int cmmdc ( int A, int B ) {
    while ( B ) {
        int rest = A % B ;
        A = B ;
        B = rest ;
    }

    return A ;
}

int cmmmc ( int A, int B ) {
    return A * B / cmmdc ( A, B ) ;
}

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

    scanf ( "%d %d", &N, &M ) ;

    for ( int i = 1; i <= N; ++i ) {
        S[i] = 1;
    }

    for ( int q = 1, i, j, d; q <= M; ++q ) {
        scanf ( "%d %d %d", &i, &j, &d ) ;

        S[i] = cmmmc ( S[i], d ) ;
        S[j] = cmmmc ( S[j], d ) ;
    }

    freopen ( FIN, "r", stdin ) ;

    scanf ( "%d %d", &N, &M ) ;

    for ( int q = 1, i, j, d; q <= M; ++q ) {
        scanf ( "%d %d %d", &i, &j, &d ) ;

        if ( cmmdc ( S[i], S[j] ) != d ) {
            printf ( "-1" ) ;
            return 0 ;
        }
    }

    for ( int i = 1; i <= N; ++i ) {
        printf ( "%d ", S[i] ) ;
    }

    return 0;
}