Cod sursa(job #525703)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 25 ianuarie 2011 22:33:09
Problema Oz Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
FILE*fin,*fout;
long int v[100001],i,j,n,m,x,y,d,a[3][100001];
int cmmdc(long int a,long int b){
long int r,p;
p=a*b;
while(b!=0){
r=a%b;
a=b;
b=r;
}
return a;

}
int cmmmc(long int a,long int b){

	return a*b/cmmdc(a,b);
}
int main(){
fin=fopen("oz.in","r");
fout=fopen("oz.out","w");
fscanf(fin,"%ld %ld",&n,&m);
for(i=1;i<=n;i++){v[i]=1;}
for(i=1;i<=n;i++){
fscanf(fin,"%ld %ld %ld",&x,&y,&d);
v[x]=cmmmc(v[x],d);
v[y]=cmmmc(v[y],d);
a[1][i]=x;
a[2][i]=y;
a[3][i]=d;

}
int ok=1;
for(i=1;i<=m;i++){
if(cmmdc(v[a[1][i]],v[a[2][i]])!=a[3][i]){ok=0;fprintf(fout,"-1");return 0;}

}
for(i=1;i<=n;i++){
if(v[i]>=2000000000){fprintf(fout,"-1");return 0;}
}
for(i=1;i<=n;i++){fprintf(fout,"%ld ",v[i]);}
return 0;}