Pagini recente » Cod sursa (job #2257808) | Cod sursa (job #1354998) | Cod sursa (job #832988) | Cod sursa (job #255483) | Cod sursa (job #2655077)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e5;
const int VALMAX = 2e9;
struct ura{
int a, b, c;
}v[NMAX];
int cnt = 0;
long long lcm[NMAX];
long long euclid(long long a, long long b){
if(a == 0)
return b;
return euclid(b % a, a);
}
int main(){
int n, i, m;
ifstream cin("oz.in");
ofstream cout("oz.out");
cin >> n >> m;
for(i = 1; i <= n; i++)
lcm[i] = 1;
for(i = 1; i <= m; i++){
long long a, b, c;
cin >> a >> b >> c;
v[++cnt] = {a, b, c};
lcm[a] = lcm[a] * c / euclid(lcm[a], c);
lcm[b] = lcm[b] * c / euclid(lcm[b], c);
}
int ok = 1;
for(i = 1; i <= m; i++){
long long a = v[i].a;
long long b = v[i].b;
long long c = v[i].c;
if(euclid(lcm[a], lcm[b]) != c)
ok = 0;
}
for(i = 1;i <= n; i++)
if(lcm[i] > VALMAX)
ok = 0;
if(!ok){
cout << -1;
}else{
for(i = 1; i <= n; i++){
cout << lcm[i] << " ";
}
}
return 0;
}