Cod sursa(job #2222411)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 16 iulie 2018 23:01:02
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <deque>

using namespace std;

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

int n, m, i, l, r, d, v[10005];

struct nr{
    int x;
    int y;
    int z;
};

deque <nr> dq;

int gcd(int a, int b)
{
    if (b != 0)
        return gcd(b, a%b);
    else
        return a;
}

int main()
{
    fin >> n >> m;
    for (i=1; i<=n; i++){
        v[i] = 1;
    }
    for (i=1; i<=m; i++){
        fin >> l >> r >> d;
        dq.push_back({l, r, d});
        v[l] = v[l]/gcd(v[l], d)*d;
        v[r] = v[r]/gcd(v[r], d)*d;
    }
    while (!dq.empty()){
        if (gcd(v[dq.front().x], v[dq.front().y]) != dq.front().z){
            fout << -1;
            return 0;
        }
        dq.pop_front();
    }
    for (i=1; i<=n; i++)
        fout << v[i] << " ";
    return 0;
}