Cod sursa(job #2777272)

Utilizator ililogIlinca ililog Data 22 septembrie 2021 19:00:36
Problema Oz Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
using namespace std;
#include<iostream>
#include<fstream>
 
ifstream fin("oz.in");
ofstream fout("oz.out");
 
int n,m;
int a[10001], b[10001], d[10001], v[10001];
 
int cmmmc(int x, int y) {
    
    int a = max(x,y), b = min(x,y);
 
    while (b) {
        int rest = a % b;
        a = b;
        b = rest;
    }
 
    return x/a*y;
}
 
 
int main() {
 
    fin >> n >> m;
 
    for (int i = 1; i<=n; i++) {
        v[i] = 1;
    }
 
    for (int i = 1; i<=m; i++) {
        fin >> a[i] >> b[i] >> d[i];
        v[a[i]] = cmmmc(v[a[i]], d[i]);
        v[b[i]] = cmmmc(v[b[i]], d[i]);
    }
 
    for (int i = 1; i<=m; i++) {
 
        int a1 = v[a[i]];
        int a2 = v[b[i]];
 
        /*if (a1 < a2) {
            swap(a1, a2);
        }*/
 
        while (a2) {
            int rest = a1%a2;
            a1 = a2;
            a2 = rest;
        }
 
        if (a1 != d[i]) {
            fout << "-1";
            return 0;
        }
    }
 
    for (int i = 1; i<=n; i++) {
        fout << v[i] << " ";
    }
 
    return 0;
}