Pagini recente » Cod sursa (job #36128) | Cod sursa (job #1201370) | Cod sursa (job #2365351) | Cod sursa (job #3215919) | Cod sursa (job #487142)
Cod sursa(job #487142)
#include<fstream>
#include<cstdio>
using namespace std;
const int N=10005;
const int M=300015;
long long i,j,d,v[N];
int a[M],n,m;
long long cmmdc(long long a, long long b)
{
long long r=a%b;
while(r)
{
a=b;
b=r;
r=a%b;
}
return b;
}
long long cmmmc(long long a, long long b)
{
return a*b/cmmdc(a,b);
}
void init()
{
for (int i=1;i<=n;++i)
v[i]=1;
}
int main()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%d%d",&n,&m);
init();
for(int k=0;k<m;++k)
{
scanf("%d%d%d",&i,&j,&d);
a[k*3]=i;
a[k*3+1]=j;
a[k*3+2]=d;
v[i]=cmmmc(v[i],d);
v[j]=cmmmc(v[j],d);
}
bool ok=true;
for(int k=0;k<m;++k)
{
i=a[k*3];
j=a[k*3+1];
d=a[k*3+2];
if(cmmdc(v[i],v[j])!=d)
{
ok=false;
break;
}
}
if (ok)
for(int i=1;i<=n;++i)
if(v[i]>2000000000)
{
ok=false;
break;
}
if (ok)
{
for(int i=1;i<=n;++i)
printf("%d ",v[i]);
printf("\n");
}
else
printf("-1\n");
return 0;
}