Pagini recente » Cod sursa (job #1345376) | Cod sursa (job #2509074) | Cod sursa (job #1899296) | Cod sursa (job #2230485) | Cod sursa (job #478908)
Cod sursa(job #478908)
#include <cstdio>
#define file_in "oz.in"
#define file_out "oz.out"
#define ll long long
#define nmax 101000
ll n,m;
ll a[nmax];
ll b[nmax];
ll c[nmax];
ll v[nmax];
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%lld %lld", &n, &m);
for (int i=1;i<=m;++i)
scanf("%lld %lld %lld", &a[i], &b[i], &c[i]);
}
inline ll cmmdc(ll a, ll b)
{
ll r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void solve()
{
int i,g;
for (i=1;i<=n;++i) v[i]=1;
for (i=1;i<=m;++i)
{
v[a[i]]=(v[a[i]]*c[i])/cmmdc(v[a[i]],c[i]);
v[b[i]]=(v[b[i]]*c[i])/cmmdc(v[b[i]],c[i]);
}
g=1;
for (i=1;i<=m && g;++i)
if (cmmdc(v[a[i]],v[b[i]])!=c[i])
g=0;
if (!g)
printf("-1\n");
else
for (i=1;i<=n;++i)
printf("%lld ", v[i]);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}