Pagini recente » Borderou de evaluare (job #2393389) | Cod sursa (job #480531)
Cod sursa(job #480531)
#include <cstdio>
#define DN 10005
int i,a,b,c;
long long n,m,sir[DN];
long long cmmdc(long long a, long long b) {
long long c;
for (;b;c=a%b,a=b,b=c);
return a;
}
long long cmmmc(long long a, long long b) { return (a*b)/cmmdc(a,b);}
bool check() {
FILE *f=fopen("oz.in","r");
fscanf(f,"%d %d",&n,&m);
for(i=1; i<=m; ++i) {
fscanf(f,"%d %d %d",&a,&b,&c);
if(cmmdc(sir[a],sir[b])!=c) return false;
}
return true;
}
int main()
{
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%lld %lld",&n,&m);
for(i=1; i<=n; ++i) sir[i]=1;
for (i=1; i<=m; ++i) {
scanf("%d %d %d",&a,&b,&c);
sir[a]=cmmmc(sir[a],c);
sir[b]=cmmmc(sir[b],c);
}
if(!check()) printf("-1");
else for(i=1; i<=n ; ++i) printf("%d ",sir[i]);
return 0;
}