Pagini recente » Cod sursa (job #1111016) | Cod sursa (job #2046688) | Cod sursa (job #618870) | Cod sursa (job #133488) | Cod sursa (job #494793)
Cod sursa(job #494793)
#include <stdio.h>
long long d, n, m, r, v[100000], a, b, max, ok;
int i;
long long cmmdc(long long x, long long y)
{
r=x%y;
while (r>0)
{
x=y;
y=r;
r=x%y;
}
return y;
}
long long cmmmc(long long x, long long y)
{
return x*y/cmmdc(x,y);
}
void citire()
{
scanf("%lld %lld",&n,&m);
for (i=1;i<=n;i++)
v[i]=1;
for (i=1;i<=m;i++)
{
scanf("%lld %lld %lld", &a, &b, &d);
v[a]=cmmmc(v[a],d);
v[b]=cmmmc(v[b],d);
if ((v[a]>max) or (v[b]>max))
{
ok=1;
break;
}
}
}
void verificare()
{
freopen("oz.in","r",stdin);
scanf("%d %d",&n,&m);
for (i=1;i<=m;i++)
{
scanf("%d %d %d",&a, &b, &d);
if (cmmdc(v[a],v[b])!=d)
{
ok=1;
break;
}
}
}
int main()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
max=2000000000;
citire();
if (ok==0)
verificare();
if (ok==0)
for (i=1;i<=n;i++)
printf("%lld ",v[i]);
else
printf("%d",-1);
return 0;
}