Cod sursa(job #2910312)

Utilizator MrAlex_25Alexandru Condrea MrAlex_25 Data 19 iunie 2022 10:15:39
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
using namespace std;

int n, m;

int v[100001], a[1000001], b[1000001], d[1000001];

int divizor(int k, int l){

    int g=k,h=l;
    if (g<h) swap(g,h);
    int r=g%h;
    while (r){
        g=h;
        h=r;
        r=g%h;
    }
    return h;
}

int multiplu(int k, int l){

    return k / divizor(k, l) * l;

}

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

    fin >> n >> m;

    for(int i = 0; i < n; i++){

        v[i] = 1;
    }

    for(int i = 0; i < m; i++){

        fin >> a[i] >> b[i] >> d[i];

        v[a[i]-1] = multiplu(v[a[i]-1], d[i]);

        v[b[i]-1] = multiplu(v[b[i]-1], d[i]);
    }

    for(int i = 0; i < m; i++){

        if(divizor(v[a[i]-1], v[b[i]-1]) != d[i]){

            fout << "-1";

            return 0;
        }
    }

    for(int i = 0; i < n; i++){

        fout << v[i] << " ";
    }




    return 0;
}