Cod sursa(job #3196783)

Utilizator Minea_TheodorMinea Theodor Stefan Minea_Theodor Data 24 ianuarie 2024 19:58:41
Problema Oz Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
int gcd(int a, int b)
{
    while(b != 0)
    {
        int r = a % b;
        a = b;
        b = r;
    }
    return a;
}
int lcm(int a, int b)
{
    return a*b/gcd(a, b);
}

int v[10001];
vector<pair<int, int>> interval;
vector<int> cmmdc;
int main()
{
    int n, m, i, j, d;
        v[i]=1;
    fin >> n >> m;
    for(int i=1; i <= n; i++)
        v[i]=1;
    while(m--)
    {
        fin >> i >> j >> d;
        if(v[i]%d!=0)
            v[i]=lcm(v[i], d);
        if(v[j]%d!=0)
            v[j]=lcm(v[j], d);
        interval.push_back({i, j});
        cmmdc.push_back(d);
    }
    for(int i=0; i < interval.size(); i++)
    {
        if(gcd(v[interval[i].first], v[interval[i].second])!=cmmdc[i])
        {
            fout << -1;
            return 0;
        }
    }
    for(int i=1; i <= n; i++)
        fout << v[i] << " ";
    return 0;
}