Cod sursa(job #486279)

Utilizator Teodor94Teodor Plop Teodor94 Data 20 septembrie 2010 23:06:06
Problema Oz Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<cstdio>

const int N=10005;

int n,m,a[N];

void init()
{
	for (int i=1;i<=n;++i)
		a[i]=1;
}

void afis()
{
	for (int i=1;i<=n;++i)
		printf("%d ",a[i]);
	printf("\n");
}

int cmmdc(int a,int b)
{
	int r;
	while (b)
	{
		r=a%b;
		a=b;
		b=r;
	}
	return a;
}

int main()
{
	freopen("oz.in","r",stdin);
	freopen("oz.out","w",stdout);
	scanf("%d%d",&n,&m);
	init();
	int x,y,d;
	for (int i=1;i<=m;++i)
	{
		scanf("%d%d%d",&x,&y,&d);
		int cmm=cmmdc(a[x],a[y]);
		if (cmm>d)
		{
			printf("-1\n");
			return 0;
		}
		if (cmm<d)
		{
			a[x]*=d;
			a[y]*=d;
		}
	}
	afis();
	return 0;
}