Pagini recente » Cod sursa (job #2435046) | Cod sursa (job #2124306) | Cod sursa (job #2536147) | Cod sursa (job #3149137) | Cod sursa (job #2655158)
#include <stdio.h>
#include <stdlib.h>
int i[100001], j[100001], d[100001], v[10001];
long long cmmmc ( int a, int b ) {
int ca, r, cb;
ca = a;
cb = b;
while ( cb > 0 ) {
r = ca % cb;
ca = cb;
cb = r;
}
return (long long)a * b / ca;
}
int cmmdc ( int a, int b ) {
int r;
while ( b > 0 ) {
r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
FILE *fin, *fout;
fin = fopen( "oz.in", "r" );
fout = fopen( "oz.out", "w" );
int n, m, i1;
long long a;
fscanf ( fin, "%d %d", &n, &m );
for ( i1 = 1; i1 <= n; i1++ ) {
v[i1] = 1;
}
for ( i1 = 1; i1 <= m; i1++ ) {
fscanf ( fin, "%d %d %d", &i[i1], &j[i1], &d[i1] );
a = cmmmc( v[i[i1]], d[i1] );
if ( a > 2000000000 ) {
fprintf( fout, "-1" );
return 0;
}
v[i[i1]] = a;
a = cmmmc( v[j[i1]], d[i1] );
if ( a > 2000000000 ) {
fprintf( fout, "-1" );
return 0;
}
v[j[i1]] = a;
}
for ( i1 = 1; i1 <= m; i1++ ) {
if ( cmmdc(v[i[i1]], v[j[i1]]) != d[i1] ) {
fprintf( fout, "-1" );
return 0;
}
}
for ( i1 = 1; i1 <= n; i1++ )
fprintf( fout, "%d ", v[i1] );
fclose(fin);
fclose(fout);
return 0;
}