Pagini recente » Cod sursa (job #402495) | Istoria paginii runda/iiot_simulare | Arhiva de probleme | Cod sursa (job #2149175) | Cod sursa (job #202571)
Cod sursa(job #202571)
#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,"%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;
}