Cod sursa(job #2808172)

Utilizator alessiamtr12Mitrica Alessia alessiamtr12 Data 24 noiembrie 2021 18:04:23
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#define MAX 2000000000
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");

int v[10001],n,m;
struct elem
{
    int x,y,d;
}w[100001];
long long cmmdc(long long a, long long b)
{
    long long r=0;
    while(b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
long long cmmmc(long long a, long long b)
{
    return a*b/cmmdc(a,b);
}
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        v[i]=1;
    for(int i=1;i<=m;i++)
    {
        fin>>w[i].x>>w[i].y>>w[i].d;
        v[w[i].x]=cmmmc(v[w[i].x],w[i].d);
        v[w[i].y]=cmmmc(v[w[i].y],w[i].d);
        if(v[w[i].x]>MAX||v[w[i].y]>MAX)
        {
            fout<<-1;
            return 0;
        }
    }
    for(int i=1;i<=n;i++)
    {
        if(cmmdc(v[w[i].x],v[w[i].y])!=w[i].d)
        {
            fout<<-1;
            return 0;
        }
    }
    for(int i=1;i<=n;i++)
    {
        fout<<v[i]<<" ";
    }
    return 0;
}