Mai intai trebuie sa te autentifici.
Cod sursa(job #166618)
Utilizator | Data | 28 martie 2008 10:43:47 | |
---|---|---|---|
Problema | Oz | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.81 kb |
#include<stdio.h>
long long euclid(long long a,long long b){
if(!b)
return a;
return euclid(b,a%b);
}
long long cmmmc(long long a,long long b){
return (a*b)/euclid(a,b);
}
int main () {
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
int a[100010],b[100010],d[100010],i,n,m;
long long v[10010];
scanf("%d%d",&n,&m);
for(i=0;i<10010;++i)
v[i]=1;
for(i=1;i<=m;++i){
scanf("%d%d%d",&a[i],&b[i],&d[i]);
v[a[i]]=cmmmc(v[a[i]],d[i]);
v[b[i]]=cmmmc(v[b[i]],d[i]);
}
for(i=1;i<=m;++i){
if(v[a[i]]>2000000000){
printf("-1\n");
return 0;
}
if(v[b[i]]>2000000000){
printf("-1\n");
return 0;
}
if(euclid(v[a[i]],v[b[i]])!=d[i]){
printf("-1\n");
return 0;
}
}
for(i=1;i<n;++i)
printf("%lld ",v[i]);
printf("%lld\n",v[n]);
return 0;
}