Pagini recente » Cod sursa (job #69742) | Cod sursa (job #939044) | Cod sursa (job #851438) | Cod sursa (job #1954142) | Cod sursa (job #202581)
Cod sursa(job #202581)
#include <stdio.h>
#define MAX 10001
FILE *f,*g;
int n,ok;
unsigned long m,v[MAX];
long euclid(long a,long b){
if(!b) return a;
else return euclid(b,a%b);
}
void rezolvare(){
int a,b;
unsigned long d,i,x,y;
fscanf(f,"%d %ld",&n,&m);
for(i=1;i<=n;i++)v[i]=1;
for(i=1;i<=m;i++){
fscanf(f,"%d %d %ld",&a,&b,&d);
x=d/euclid(v[a],d);
y=d/euclid(v[b],d);
if(x*v[a]>2000000000||y*v[b]>2000000000){
ok=1;
break;
}
v[a]=x*v[a];
v[b]=y*v[b];
if(euclid(v[a],v[b])!=d){
ok=1;
break;
}
}
}
void afisare(){
int i;
if(!ok) for (i=1;i<=n;i++) fprintf(g,"%lu ",v[i]);
else
fprintf(g,"-1");
fprintf(g,"\n");
}
int main(){
f=fopen("oz.in","r");
g=fopen("oz.out","w");
rezolvare();
afisare();
fclose(f);
fclose(g);
return 0;
}