Cod sursa(job #3361301)

Utilizator andreicapyCapitanescu Andrei andreicapy Data 22 iulie 2026 21:31:13
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>

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

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

int main()
{
    int a1,b2,c3,ok=1,n,m,v[10001],a[100001],b[100001],c[100001];
    fin>>n>>m;
    for(int i=1;i<=n;i++){
        v[i]=1;
    }
    for(int i=1;i<=m;i++){
        fin>>a1>>b2>>c3;
        a[i]=a1;
        b[i]=b2;
        c[i]=c3;
        long long ca=v[a1]/cmmdc(v[a1],c3)*c3;
        long long cb=v[b2]/cmmdc(v[b2],c3)*c3;
        if(ca>2000000000 || cb>2000000000){
            ok=0;
            break;
        }
        v[a1]=ca;
        v[b2]=cb;
    }
    for(int i=1;i<=m;i++){
        if(cmmdc(v[a[i]],v[b[i]]) != c[i]){
            ok=0;
            break;
        }
    }
    if(ok==1){
        for(int i=1;i<=n;i++){
            fout<<v[i]<<" ";
        }
    }else{
        fout<<-1;
    }
    return 0;
}