Cod sursa(job #474482)

Utilizator borsoszalanBorsos Zalan borsoszalan Data 3 august 2010 21:37:43
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#define nmax 10002
int n,m,i,j,v[nmax],a,b,c;

int cmmdc(int x, int y)
{

	int seged;
	if(x<y)
	{
		seged=y;
		y=x;
		x=seged;
	}
	while(y)
	{
		seged=y;
		y=x%y;
		x=seged;
	}
	return x;
}


int main()
{
	freopen("oz.in", "r", stdin);
	freopen("oz.out", "w", stdout);
	scanf("%d%d", &n, &m);
	for(i=1;i<=n;i++)
		v[i]=1;
	for(i=1;i<=m;i++)
	{
		scanf("%d%d%d", &a, &b, &c);
		v[a]=v[a]*c/cmmdc(v[a],c);
		v[b]=v[b]*c/cmmdc(v[b],c);
	}
	fclose(stdin);
	freopen("oz.in", "r", stdin);
	freopen("oz.out", "w", stdout);
	scanf("%d%d", &n, &m);
	int mut=1;
	for(i=1;i<=m&&mut;i++)
	{
		scanf("%d%d%d", &a, &b, &c);
		if(cmmdc(v[a], v[b])!=c)
			mut=0;
	}
	if(!mut)
		printf("-1\n");
	else
		for(i=1;i<=n;i++)
			printf("%d ", v[i]);
	return 0;
}