Cod sursa(job #302884)

Utilizator Ionut_infoNicoara Ionut Ionut_info Data 9 aprilie 2009 13:10:58
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<iostream>
#include<stdio.h>
#define ll long long
struct asd{ll i,j,d;} tr[100010];
ll sol[10010],n,m,i;
inline ll cmmdc(ll a,ll b)
{
	if(!b) return a;
	return cmmdc(b,a%b);
}
int main()
{
	freopen("oz.in","r",stdin);
	freopen("oz.out","w",stdout);
	scanf("%lld%lld",&n,&m);
	for(i=1;i<=n;i++) sol[i]=1;
	for(i=1;i<=m;i++)
	{
		scanf("%lld%lld%lld",&tr[i].i,&tr[i].j,&tr[i].d);
		sol[tr[i].i]=sol[tr[i].i]*tr[i].d/cmmdc(sol[tr[i].i],tr[i].d);
		sol[tr[i].j]=sol[tr[i].j]*tr[i].d/cmmdc(sol[tr[i].j],tr[i].d);
	}
	for(i=1;i<=m;i++)
		if(cmmdc(sol[tr[i].i],sol[tr[i].j])!=tr[i].d)
		{
			printf("-1\n");
			return 0;
		}
	for(i=1;i<=n;i++)
		printf("%lld ",sol[i]);
	printf("\n");
	return 0;
}