Pagini recente » Cod sursa (job #2362301) | Cod sursa (job #2553333) | Cod sursa (job #1823681) | Cod sursa (job #2922738) | Cod sursa (job #2950060)
#include <bits/stdc++.h>
#define LIM 2000000000LL
/// TONI BO$$ was here
/// #MLC
using namespace std;
struct{
int i, j, x;
}q[100001];
long long v[10001];
int main()
{
int n, m, i, a, b;
long long c, d;
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%d%d", &n, &m);
for(i = 1; i <= n; i++)
v[i] = 1;
bool flag = true;
for(i = 1; i <= m; i++){
scanf("%d%d%d", &q[i].i, &q[i].j, &q[i].x);
a = q[i].i;
b = q[i].j;
c = __gcd(v[a], 1LL * q[i].x);
d = __gcd(v[b], 1LL * q[i].x);
if(v[a] * q[i].x / c > LIM)
flag = false;
else
v[a] = v[a] * q[i].x / c;
if(v[b] * q[i].x / d > LIM)
flag = false;
else
v[b] = v[b] * q[i].x / d;
}
for(i = 1; i <= m; i++)
if(__gcd(v[q[i].i], v[q[i].j]) != q[i].x)
flag = false;
if(!flag){
printf("-1");
return 0;
}
for(i = 1; i <= n; i++)
printf("%lld ", v[i]);
return 0;
}