Cod sursa(job #2924101)

Utilizator CReaper1116Shang Cheng Lin CReaper1116 Data 25 septembrie 2022 14:23:28
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>

using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
typedef long long ll;
ll v[10000];
int v2[100000],v3[100000],v4[100000];
int cmmdc(int a,int b){
    if(b != 0)return cmmdc(b,a%b);
    return a;
}
ll  cmmmc(ll a,ll b){
    return a*b/cmmdc(a,b);
}
int main()
{
    int n,m,a,b,x,i,ok = 1;
    fin>>n>>m;
    for(i = 0;i < n;i++)v[i] = 1;
    for(i = 0;i < m && ok == 1;i++){
        fin>>a>>b>>x;
        a--;
        b--;
        v2[i] = a;
        v3[i] = b;
        v4[i] = x;
        v[a] = cmmmc(v[a],x);
        v[b] = cmmmc(v[b],x);
        if(v[a] > 2e9 || v[b] > 2e9)ok = 0;
    }
    if(ok == 0)fout<<-1;
    else{
        for(i = 0;i < m;i++){
            if(cmmdc(v[v2[i]],v[v3[i]]) != v4[i]){
                ok = 0;
            }
        }
        if(ok == 0)fout<<-1;
        else{
            for(i = 0;i < n;i++){
                fout<<v[i]<<' ';
            }
        }
    }
    return 0;
}