Pagini recente » Rating Giurgiu Adrian (j8rj72) | Cod sursa (job #2840692) | Cod sursa (job #1422425) | Cod sursa (job #389224) | Cod sursa (job #2655106)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 10000;
const int MMAX = 100000;
const int VALMAX = 2e9;
int v[NMAX + 1];
int x[MMAX + 1], y[MMAX + 1], d[MMAX + 1];
long long cmmmc( int a, int b ){
return (1LL * a * b) / __gcd(a, b);
}
int main() {
FILE *fin, *fout;
fin = fopen( "oz.in", "r" );
fout = fopen( "oz.out", "w" );
int n, m, i, cnt;
fscanf( fin, "%d%d", &n, &m );
for( i = 1; i <= n; ++i )
v[i] = 1;
for( i = 1; i <= m; ++i ){
fscanf( fin, "%d%d%d", &x[i], &y[i], &d[i] );
v[x[i]] = cmmmc(v[x[i]], d[i]);
v[y[i]] = cmmmc(v[y[i]], d[i]);
if( v[x[i]] > VALMAX || v[y[i]] > VALMAX )
i = m + 2;
}
if( i == m + 2 )
fprintf( fout, "-1" );
else{
cnt = 0;
for( i = 1; i <= m; ++i )
if( __gcd(v[x[i]], v[y[i]]) == d[i] )
++cnt;
if( cnt < m )
fprintf( fout, "-1" );
else
for( i = 1; i <= n; ++i )
fprintf( fout, "%d ", v[i] );
}
fclose( fin );
fclose( fout );
return 0;
}