Cod sursa(job #2286967)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 21 noiembrie 2018 09:53:44
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NMAX = 100005;

long long v[NMAX],a[NMAX],b[NMAX],CMMDC[NMAX];

long long cmmdc(long long x,long long y)
{
    long long rest;
    while(y!=0)
    {
        rest=x%y;
        x=y;
        y=rest;
    }
    return x;
}

int main()
{
    int n,m;
    fin >> n >> m;
    for(int i=1;i<=n;i++) v[i]=1;
    long long d;
    int i,j;
    for(int u=1;u<=m;u++)
    {
        fin >> i >> j >> d;
        a[u]=i;
        b[u]=j;
        CMMDC[u]=d;
        v[i]*=(d/cmmdc(v[i],d));
        v[j]*=(d/cmmdc(v[j],d));
    }
    bool ok=1;
    for(int i=1;i<=m;i++)
    {
        if(cmmdc(v[a[i]],v[b[i]])!=CMMDC[i]) ok=0;
    }
    if(ok==0)
    {
        fout << "-1";
    }
    else
    {
        for(int i=1;i<=n;i++) fout << v[i] << ' ';
    }
    return 0;
}