Cod sursa(job #1234978)

Utilizator felixiPuscasu Felix felixi Data 28 septembrie 2014 14:39:50
Problema Oz Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

ifstream in("oz.in");
ofstream out("oz.out");

const int NMAX = 10000;

int v[NMAX+1];
int N, K;

int cmmdc( int a, int b ) {
    int r;
    while( b ) {
        r= a%b;
        a= b;
        b= r;
    }
    return a;
}

int cmmmc( int a, int b ) {
    return a/cmmdc(a,b)*b;
}

int main() {
    in >> N >> K;
    for( int i= 1;  i<=N;  ++i ) v[i]= 1;
    for( int i= 1;  i<=N;  ++i ) {
        int x,y,d;
        in >> x >> y >> d;
        v[x]= cmmmc(v[x], d);
        v[y]= cmmmc(v[y], d);
    }
    in.close();
    ifstream in("oz.in");
    in >> N >> K;
    bool OK= 1;
    for( int i= 1;  i<=N && OK;  ++i ) {
        int x,y, d;
        in >> x >> y >> d;
        OK= (cmmdc(v[x], v[y]) == d);
    }
    if( OK )  {
        for( int i= 1;  i<=N;  ++i )  out << v[i] << ' ';
    }
    else {
        out << "-1";
    }
    out << '\n';
    return 0;
}