Cod sursa(job #203133)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 13 august 2008 23:56:20
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
long n,m,i,j,d,dd,a[10001];
long sol(),cmmdc(long mare,long mic);
void print_sol();
int main()
{
	if(!sol())printf("-1\n");
	else print_sol();
	return 0;
}
long sol()
{
	freopen("oz.in","rt",stdin);
	freopen("oz.out","wt",stdout);
	scanf("%ld%ld",&n,&m);
	for(i=1;i<=n;i++)a[i]=1;
	for(;m;m--)
	{ scanf("%ld%ld%ld",&i,&j,&d);
	  dd=cmmdc(a[i],d);a[i]/=dd;a[i]*=d;
	  dd=cmmdc(a[j],d);a[j]/=dd;a[j]*=d;
	}
	freopen("oz.in","rt",stdin);
	scanf("%ld%ld",&n,&m);
	for(;m;m--)
	{ scanf("%ld%ld%ld",&i,&j,&d);
	  dd=cmmdc(a[i],a[j]);
	  if(dd!=d)return 0;
	}
	return 1;

}
long cmmdc(long mare,long mic)
{       long cat;
	while(mic)
	{ cat=mare%mic;mare=mic;mic=cat;}
	return mare;
}
void print_sol()
{
	for(i=1;i<=n;i++) printf("%ld ",a[i]);
}