Pagini recente » Cod sursa (job #3151651) | Cod sursa (job #54162) | Cod sursa (job #2776533) | Cod sursa (job #224092) | Cod sursa (job #2485942)
#include <fstream>
using namespace std;
ifstream in ("oz.in");
ofstream out ("oz.out");
struct ura
{
int i;
int j;
int d;
}w[100137];
long long cmmmc (long long a, long long b)
{
long long ca = a;
long long cb = b;
long long r = a%b;
while ( b )
{
r = a%b;
a = b;
b = r;
}
return ca*cb/a;
}
long long cmmdc (long long a, long long b)
{
long long r = a%b;
while ( b )
{
r = a%b;
a = b;
b = r;
}
return a;
}
int i, j, d;
int n, m;
long long v[10137];
int main()
{
in >> n >> m;
for (register int i=1; i<=n; ++i)
v[i] = 1;
for (register int q=1; q<=m; ++q)
{
in >> i >> j >> d;
v[i] = cmmmc (v[i], 1ll*d);
v[j] = cmmmc (v[j], 1ll*d);
w[q].d = d;
w[q].i = i;
w[q].j = j;
}
for (register int i=1; i<=n; ++i)
if ( v[i] > 2e9 || v[i] < 0 )
{
out << -1;
return 0;
}
for (register int q=1; q<=m; ++q)
if ( cmmdc (v[w[q].i], v[w[q].j]) != 1ll*w[q].d )
{
out << -1;
return 0;
}
for (register int i=1; i<=n; ++i)
out << v[i] << " ";
return 0;
}