Pagini recente » Cod sursa (job #2474767) | Cod sursa (job #1992872) | Cod sursa (job #1057065) | Cod sursa (job #2546685) | Cod sursa (job #202573)
Cod sursa(job #202573)
#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;
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);
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,"0 ");
// 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;
}