Cod sursa(job #2477758)

Utilizator davidcotigacotiga david davidcotiga Data 21 octombrie 2019 08:26:06
Problema Oz Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#define LIM 2000000000

using namespace std;

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

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

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

int main(){
    int v[10001];
    int mat[100001][3];
    int N, M;
    cin >> N >> M;
    int k, j, d;
    for (int i = 1; i <= N; ++i){
         v[i] = 1;
    }
    for (int i = 1; i <= M; ++i){
        cin >> k >> j >> d;
        mat[i][0] = k; mat[i][1] = j; mat[i][2] = d;
        v[k] = cmmmc(v[k], d);
        v[j] = cmmmc(v[j], d);
    }
    int ok = 1;
    for (int i = 1; i <= M; ++i){
        if (cmmdc(v[mat[i][0]], v[mat[i][1]]) != mat[i][2] || v[mat[i][0]] > LIM || v[mat[i][1]] > LIM)
            ok = 0;
    }
    if (ok == 0)
        cout << "-1";
    else
        for (int i = 1; i <= N; ++i)
        cout << v[i] << " ";
    return 0;
}