Pagini recente » Cod sursa (job #1922795) | Cod sursa (job #99216) | Cod sursa (job #1077757) | Cod sursa (job #2671190) | Cod sursa (job #169162)
Cod sursa(job #169162)
#include <stdio.h>
#include <fstream>
using namespace std;
#define in "oz.in"
#define out "oz.out"
#define dim 10001
//#define a X[i]
//#define b Y[i]
inline long long Cmmdc(long long a,long long b) {
if ( b == 0 ) return a;
return Cmmdc(b,a%b);
}
int N, M;
long long aux = 2000000001LL;
long long X[dim], Y[dim], C[dim];
long long T[dim];
int main()
{
bool ok = 1;
freopen(in,"r",stdin);
freopen(out,"w",stdout);
memset(T,0,sizeof(T));
scanf("%d%d", &N, &M);
for ( int i = 1; i <= M; i++ )
scanf("%d%d%d", &X[i], &Y[i], &C[i]);
for ( int i = 1; i <= M && ok; i++ )
{
long long a = X[i], b = Y[i];
/*if ( T[a] == 0 ) T[a] = C[i];
if ( T[b] == 0 ) T[b] = C[i];
if ( C[i] / Cmmdc(T[a],C[i]) >= aux / T[a] ) ok = 0;
if ( C[i] / Cmmdc(T[b],C[i]) >= aux / T[b] ) ok = 0;
if ( !ok ) continue;
int x = ((C[i])/Cmmdc(T[a],C[i]))*T[a];
int y = ((C[i])/Cmmdc(T[b],C[i]))*T[b];
T[a] = x, T[b] = y;*/
}
for ( int i = 1; i <= M; i++ )
{
int a = X[i], b = Y[i];
if ( Cmmdc(T[a],T[b]) != C[i] ) ok = 0;
}
if (!ok)
{
printf("-1");
return 0;
}
for ( int i = 1; i <= N; i++ )
printf("%d ", T[i] );
}