Pagini recente » Cod sursa (job #2030802) | Cod sursa (job #1919997) | Cod sursa (job #111329) | Cod sursa (job #1811688) | Cod sursa (job #171493)
Cod sursa(job #171493)
#include <stdio.h>
#include <stdlib.h>
#define N 10010
long long v[N];
char prez[N];
int n,m;
long long cmmdc(long long a,long long b){
if (b==0)
return a;
else return cmmdc(b,a%b);
}
long long cmmmc(long long a,long long b){
long long c;
c=a;
c*=b;
return c/cmmdc(a,b);
}
void add(int i,int j,int d){
v[i]=cmmmc(v[i],d);
v[j]=cmmmc(v[j],d);
if (cmmdc(v[i]/d,v[j]/d)!=1){
printf("-1\n");
fclose(stdout);
exit(0);
}
}
void init(){
int i;
for (i=1;i<=n;++i){
v[i]=1;
prez[i]=0;
}
}
void scan(){
int i,j,d;
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%d%d",&n,&m);
init();
while (m--){
scanf("%d%d%d",&i,&j,&d);
add(i,j,d);
prez[i]=prez[j]=1;
}
}
void print(){
int i;
for (i=1;i<=n;++i)
if ((prez[i]==0 && v[i]!=1) || (v[i]>2000000000)){
printf("-1\n");
exit(0);
}
for (i=1;i<=n;++i)
printf("%lld ",v[i]);
printf("\n");
fclose(stdin);
fclose(stdout);
}
int main(){
scan();
print();
return 0;
}