Cod sursa(job #2660206)

Utilizator Anna123Anna Negrea Anna123 Data 18 octombrie 2020 15:26:34
Problema Oz Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
#define DimMax 10001
#define ll long long
#define MMax 100001

using namespace std;

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

int n, m;
ll a[MMax], b[MMax], d[MMax];
long long v[DimMax];

ll CMMDC(ll a, ll b)
{
    ll r;
    while ( b > 0 )
    {
        r = a % b;
        a = b;
        b = r;
    }
    return a;
}

ll CMMMC(ll a, ll b)
{
    return a * b / CMMDC(a, b);
}

void solve(int poz, int d)
{
    if ( v[poz] == 0 ) v[poz] = d;
    else
        v[poz] = CMMMC(v[poz], d);
}


int main()
{
    fin>>n>>m;
    for(int i = 1;i <= m;i++)
    {
        fin>>a[i]>>b[i]>>d[i];
        solve(a[i], d[i]);
        solve(b[i], d[i]);
    }
    for(int i = 1;i <= m;i++)
    {
        if(CMMDC(v[a[i]], v[b[i]]) != d[i])
        {
            fout<<-1;
            return 0;
        }
    }
    for(int i = 1;i <= n;i++)
        fout<<v[i]<<" ";
    return 0;
}