Pagini recente » Cod sursa (job #25073) | Cod sursa (job #894937) | Cod sursa (job #1320436) | Cod sursa (job #2684662) | Cod sursa (job #1278867)
#include<fstream>
using namespace std;
ifstream in("oz.in");
ofstream out("oz.out");
int i,n,m,x,y,d,ok;
int v1[100002], v2[100002], vd[100002];
long long a[10002];
long long cmmdc(long long a, long long b)
{
long long r;
r=a%b;
while (r!=0)
{
a=b;
b=r;
r=a%b;
}
return b;
}
long long cmmmc(long long a, long long b)
{
return (a*b)/cmmdc(a,b);
}
int main()
{
in>>n>>m;
for(i=1;i<=n;++i)
a[i]=1;
ok=1;
for(i=1;i<=m;++i)
{
in>>x>>y>>d;
v1[i]=x;
v2[i]=y;
vd[i]=d;
a[x]=cmmmc(a[x],d);
a[y]=cmmmc(a[y],d);
}
for (i=1; i<=n; ++i)
if (a[i]>2000000000)
{
ok=-1;
break;
}
if(ok==1)
for (i=1; i<=m; ++i)
if ( cmmdc(a[v1[i]], a[v2[i]])!=vd[i] )
{
ok=-1;
break;
}
if (ok==1)
{
out<<a[1];
for(i=2; i<=n; ++i)
out<<" "<<a[i];
out<<"\n";
}
else
out<<"-1\n";
return 0;
}