Cod sursa(job #2910310)

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

int n, m, cnt = 0;

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

int divizor(int k, int l){

    while(l != 0)
    {
        int r = k % l;
        k = l;
        l = r;
    }
    return k;
}

int multiplu(int k, int l){

    return k * l / divizor(k, 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]){

            cnt++;
        }

    }

    if(cnt == m){
        for(int i = 0; i < n; i ++){
            fout << v[i] << " ";
    }
    }

    else fout << "-1";


    return 0;
}