Pagini recente » Cod sursa (job #1492593) | Cod sursa (job #2178082) | Cod sursa (job #2760945) | Cod sursa (job #1878328) | Cod sursa (job #488440)
Cod sursa(job #488440)
#include<fstream.h>
#define NMAX 10002
#define MMAX 100002
#define NU 2000000000
int i, n, m, x, y, d, ok, v1[MMAX], v2[MMAX], vd[MMAX];
long long a[NMAX];
long long cmmdc(long long xx, long long yy)
{
long long r;
r=xx%yy;
while (r!=0)
{
xx=yy;
yy=r;
r=xx%yy;
}
return yy;
}
long long cmmmc(long long xx, long long yy)
{
return (xx*yy)/cmmdc(xx,yy);
}
int main()
{
ifstream f("oz.in");
ofstream g("oz.out");
f>>n>>m;
for(i=1; i<=n; ++i)a[i]=1;
ok=1;
for(i=1; i<=m; ++i)
{
f>>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]>NU){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)
{
g<<a[1];
for(i=2; i<=n; ++i) g<<" "<<a[i];
g<<"\n";}
else g<<"-1\n";
f.close();
g.close();
return 0;
}