Cod sursa(job #487132)

Utilizator Teodor94Teodor Plop Teodor94 Data 23 septembrie 2010 21:33:46
Problema Oz Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<cstdio>

const int N=10005;
const int M=100005;

int n,m,a[N],x[M],y[M],d[M];

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();
	for (int i=1;i<=m;++i)
	{
		scanf("%d%d%d",&x[i],&y[i],&d[i]);
		a[x[i]]*=d[i];
		a[y[i]]*=d[i];
	}
	int cmm;
	for (int i=1;i<=m;++i)
	{
		cmm=cmmdc(a[x[i]],a[y[i]]);
		if (cmm!=d[i])
		{
			a[x[i]]/=d[i];
			a[y[i]]/=d[i];
		}
	}
	afis();
	return 0;
}