Cod sursa(job #193259)

Utilizator raduzerRadu Zernoveanu raduzer Data 3 iunie 2008 12:12:07
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>

int n,m,i,j,a[10010],x,y,z;

int cmmdc(int a,int b)
{
	int r;
	while (b!=0)      
    {      
        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);
	for (i=1; i<=n; ++i) a[i]=1;
	for (i=1; i<=m; ++i)
	{
		scanf("%d%d%d",&x,&y,&z);
		if (a[x]%z!=0) a[x]=a[x]*(z/cmmdc(a[x],z));
		if (a[y]%z!=0) a[y]=a[y]*(z/cmmdc(a[y],z));
	}
	int q=1;
	fclose(stdin);
	freopen("oz.in","r",stdin);
	scanf("%d%d",&n,&m);
	for (i=1; i<=m; ++i)
	{
		scanf("%d%d%d",&x,&y,&z);
		if (cmmdc(a[x],a[y])!=z) { q=0; break; }
	}
	if (q) for (i=1; i<=n; ++i) printf("%d ",a[i]);
	else printf("-1");
	return 0;
}