Cod sursa(job #2910065)

Utilizator MrAlex_25Alexandru Condrea MrAlex_25 Data 18 iunie 2022 10:53:40
Problema Oz Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 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 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] = v[a[i]-1] * d[i] / divizor(v[a[i]-1], d[i]);

        v[b[i]-1] = v[b[i]-1] * d[i] / divizor(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++;
        }

    }

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

    if(cnt == m){
        fout << v[i] << " ";
    }

    else cout << "-1";

    }


    return 0;
}