Cod sursa(job #2823553)

Utilizator lolismekAlex Jerpelea lolismek Data 28 decembrie 2021 20:35:08
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <vector>

#define int long long

using namespace std;

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

struct cerinta{
    int a, b, d;
};

int gcd(int a, int b){
    while(b > 0){
        int r = a % b;
        a = b;
        b = r;
    }
    return a;
}

int gcm(int a, int b){
    return a * b / gcd(a, b);
}

signed main(){
    int n, m;
    fin >> n >> m;
    vector <cerinta> cerinte;
    vector <int> v(n + 1, 1);
    for(int mc = 1; mc <= m; mc++){
        int i, j, d;
        fin >> i >> j >> d;
        cerinte.push_back({i, j, d});
        v[i] = gcm(v[i], d);
        v[j] = gcm(v[j], d);
    }
    for(auto vec : cerinte){
        if(gcd(v[vec.a], v[vec.b]) != vec.d){
            fout << -1;
            return 0;
        }
    }
    for(int i = 1; i <= n; i++) fout << v[i] << " ";
    return 0;
}