Cod sursa(job #2873065)

Utilizator TheNamelessOneCiociia Marius Andrei TheNamelessOne Data 18 martie 2022 16:25:39
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>

using namespace std;

ifstream cin ("oz.in");
ofstream cout ("oz.out");

int n,m,i,j,k,v[10001],vi[100001],vj[100001],vk[100001];

int cmmdc (int x, int y)
{
    int a=x,b=y;
    if (a<b) swap(a,b);
    int r=a%b;
    while (r){
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}

int cmmmc (int a, int b)
{
    return a/cmmdc(a,b)*b;
}

int main()
{
    int n,m;
    cin>>n>>m;
    for (int I=1; I<=n; ++I) v[I]=1;
    for (int I=1; I<=m; ++I){
        cin>>i>>j>>k;
        vi[I]=i;
        vj[I]=j;
        vk[I]=k;
        v[vi[I]]=cmmmc(v[vi[I]],vk[I]);
        v[vj[I]]=cmmmc(v[vj[I]],vk[I]);
    }
    for (int i=1; i<=m; ++i)
        if (cmmdc(v[vi[i]],v[vj[i]])!=vk[i]){
            cout<<-1;
            return 0;
        }
    for (int i=1; i<=n; ++i) cout<<v[i]<<" ";

    return 0;
}