Cod sursa(job #193116)

Utilizator raduzerRadu Zernoveanu raduzer Data 2 iunie 2008 13:44:25
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 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);
		a[x]=a[x]*z/cmmdc(a[x],z);
		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\n");
	return 0;
}