Pagini recente » Cod sursa (job #3254001) | Cod sursa (job #1834085) | Cod sursa (job #1692768) | Cod sursa (job #1642989) | Cod sursa (job #202786)
Cod sursa(job #202786)
#include <stdio.h>
#define MAX 10001
FILE *f,*g;
int n,ok;
long v[MAX];
unsigned long m;
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;
long long t1,t2;
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);
t1=(long long )x*v[a];
t2=(long long) y*v[b];
if(y*v[b]>2000000000||x*v[a]>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;
}