Cod sursa(job #2777088)

Utilizator ililogIlinca ililog Data 22 septembrie 2021 09:23:09
Problema Oz Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 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) {

    long long produs = x * y;

    /*if (x < y) {
        swap(x,y);
    }*/

    while (y) {
        int rest = x % y;
        x = y;
        y = rest;
    }

    return produs/x;
}


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;
}