Cod sursa(job #166199)

Utilizator MirageRobert Sandu Mirage Data 27 martie 2008 17:28:57
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
int euclid(int a, int b){
	if(!b)
		return a;
	return euclid(b,a%b);
}
int main () {
	freopen("oz.in","r",stdin);
	freopen("oz.out","w",stdout);
	int a[100010],b[100010],d[100010],i,n,m,v[10010];
	scanf("%d%d",&n,&m);
	for(i=0;i<=n;++i)
		v[i]=1;
	for(i=1;i<=m;++i){
		scanf("%d%d%d",&a[i],&b[i],&d[i]);
		v[a[i]]=(v[a[i]]*d[i])/euclid(v[a[i]],d[i]);
		v[b[i]]=(v[b[i]]*d[i])/euclid(v[b[i]],d[i]);
	}
	for(i=1;i<=m;++i)
		if(euclid(v[a[i]],v[b[i]])!=d[i]){
			printf("-1\n");
			return 0;
		}
	for(i=1;i<n;++i)
		printf("%d ",v[i]);
	printf("%d\n",v[n]);
	return 0;
}