Cod sursa(job #238044)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 31 decembrie 2008 12:01:47
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
int cmmdc(int a,int b)
{
	int r=a%b;
	while (r)
	{
		a=b;
		b=r;
		r=a%b;
	}
	return b;
}
int cmmmc(int a,int b)
{
	return (a*b/cmmdc(a,b));
}
int main()
{
	freopen("oz.in","r",stdin);
	freopen("oz.out","w",stdout);
	int n,m,i,j,d,r,a[10005],x[100005],y[100005],z[100005],trisare=0;
	scanf("%d%d",&n,&m);
	for (i=1; i<=n; i++)
		a[i]=1;
	for (r=1; r<=m; r++)
	{
		scanf("%d%d%d",&x[r],&y[r],&z[r]);
		a[x[r]]=cmmmc(a[x[r]],z[r]);
		a[y[r]]=cmmmc(a[y[r]],z[r]);
	}
	for (i=1; i<=m; i++)
		if (cmmdc(a[x[i]], a[y[i]])==z[i])
			trisare=0;
		else
		{
			trisare=1;
			break;
		}
	if (trisare==0)
		for (i=1; i<=n; i++)
			printf("%d ",a[i]);
		else
			printf("-1");
	return 0;
}