Pagini recente » Cod sursa (job #1728640) | algoritmiada-2019/runda-preoji/clasament | algoritmiada-2019/runda-preoji/clasament | Cod sursa (job #2018217) | Cod sursa (job #973956)
Cod sursa(job #973956)
#include <cstdio>
#define SIZE 100002
using namespace std;
int n, m, i, x[SIZE], y[SIZE], d[SIZE];
long long v[10002];
long long gcd(long long x, long long y)
{
int r=1;
while(y)
{
r=x%y; x=y; y=r;
}
return x;
}
long long lcm(int x, int y)
{
return (long long)(x*y/gcd(x, y));
}
bool verif()
{
for(int i=1;i<=m;++i)
if( gcd(v[x[i]], v[y[i]])!=d[i] )
return 0;
return 1;
}
int main()
{
freopen("oz.in", "r", stdin);
freopen("oz.out", "w", stdout);
scanf("%d %d", &n, &m);
for(i=1;i<=n;++i)
v[i]=1;
for(i=1;i<=m;++i)
{
scanf("%d %d %d", &x[i], &y[i], &d[i]);
v[x[i]]=lcm(v[x[i]], d[i]);
v[y[i]]=lcm(v[y[i]], d[i]);
}
if(verif())
for(i=1;i<=n;++i)
printf("%lld ", v[i]);
else
printf("-1\n");
return 0;
}