Cod sursa(job #3180271)

Utilizator Alex283810Mocan Alexandru Valnetin Alex283810 Data 4 decembrie 2023 22:00:02
Problema Oz Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <bits/stdc++.h>

using namespace std;

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

long long cmmdc(int a,int b)
{
    long long r,u;
    while(b!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
 long long cmmmc(int a,int b)
{
    long long int r,u;
    u=a*b;
    while(b!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return u/a;
}
long long v[100001],a[1000001],c[1000001],b[1000001];
int main()
{
     long long n,m,i,j;
    fin>>m>>n;
    for(i=1;i<=m;i++)
    {
        v[i]=1;
    }
    for(i=1;i<=n;i++)
    {
        fin>>a[i]>>b[i]>>c[i];
        v[a[i]]=cmmmc(v[a[i]],c[i])*1LL;
        v[b[i]]=cmmmc(v[b[i]],c[i])*1LL;
         //for(j=1;j<=m;j++)
         //{
         //    fout<<v[j]<<" ";
         //}
        //fout<<"\n";
    }
    bool ok=1;
    for(i=1;i<=n;i++)
    {
        if(cmmdc(v[a[i]],v[b[i]])!=c[i])
        {
            ok=0;
            break;
        }
    }
    for(i=1;i<=n;i++)
    {
        if(v[i] > 2e9)
            ok = 0;
    }
    if(ok==1)
    {
        for(i=1;i<=m;i++)
        {
            fout<<v[i]<<" ";
        }
    }
    else
    {
        fout<<-1;
    }
    return 0;
}