Pagini recente » Cod sursa (job #118850) | Istoria paginii utilizator/corinat | Profil mihaipriboi | Cod sursa (job #1290930) | Cod sursa (job #521556)
Cod sursa(job #521556)
#include <stdio.h>
#define MAXN 100001
FILE *f=fopen("oz.in","r");
FILE *g=fopen("oz.out","w");
int n,m;
unsigned long long v[10001];
unsigned long long a[3][MAXN];
unsigned long long cmmdc(unsigned long long a,unsigned long long b){
unsigned long long register a1=a,b1=b,r;
r=a1%b1;
while(r!=0){
a1=b1;
b1=r;
r=a1%b1;
}
return b1;
}
unsigned long long cmmmc(unsigned long long a,unsigned long long b){
return a*b/cmmdc(a,b);
}
bool ver(){
int register i,j;
for(i=1;i<=m;i++){
if(cmmdc(v[a[1][i]],v[a[2][i]])!=a[3][i]){
return false;
}
}
for(i=1;i<=n;i++){
if(v[i]>2000000001){
return false;
}
}
return true;
}
int main(void){
int register i,j;
fscanf(f,"%d %d",&n,&m);
int register x,y;
long long d;
for(i=1;i<=n;i++)
v[i]=1;
for(i=1;i<=m;i++){
fscanf(f,"%d %d %lld",&x,&y,&d);
v[x]*=cmmmc(d,v[x]);
v[y]*=cmmmc(d,v[y]);
a[1][i]=x;
a[2][i]=y;
a[3][i]=d;
}
fclose(f);
if(ver()){
for(i=1;i<=n;i++){
fprintf(g,"%lld ",v[i]);
}
fclose(g);
return 0;
}
fprintf(g,"-1");
fclose(g);
return 0;
}