Cod sursa(job #2497469)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 22 noiembrie 2019 18:55:39
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;

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

struct chestie
{
    long long x, y, d;
} v[100005];

long long cmmmc[10005];

int main()
{
    int n, m;
    fin >> n >> m;

    for(int i = 1; i <= n; ++i)
        cmmmc[i] = 1;
    for(int i = 1; i <= m; ++i)
    {
        fin >> v[i].x >> v[i].y >> v[i].d;

        cmmmc[v[i].x] = (cmmmc[v[i].x] * v[i].d) / __gcd(cmmmc[v[i].x], v[i].d);
        cmmmc[v[i].y] = (cmmmc[v[i].y] * v[i].d) / __gcd(cmmmc[v[i].y], v[i].d);

        if(cmmmc[v[i].x] > 2000000000 || cmmmc[v[i].y] > 2000000000){
            fout << -1 << '\n';
            return 0;
        }
    }

    for(int i = 1; i <= m; ++i)
        if(__gcd(cmmmc[v[i].x], cmmmc[v[i].y]) != v[i].d)
        {
            fout << -1 << '\n';
            return 0;
        }

    for(int i = 1; i <= n; ++i)
        fout << cmmmc[i] << ' ';
    fout << '\n';
    return 0;
}