Cod sursa(job #376904)

Utilizator titusuTitus C titusu Data 22 decembrie 2009 20:41:26
Problema Oz Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
using namespace std;
#include <cstdio>

int v[10001],n;

int cmmdc(int a,int b){
	int r=a%b;
	while(r){
		a=b; b=r; r=a%b;
	}
	return b;
}

int main(){
	freopen("oz.in","r",stdin);
	int m,i,j,corect=1,d;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
		v[i]=1l;
	for( ; m ; --m){
		scanf("%d%d%d",&i,&j,&d);
		if(cmmdc(v[i],v[j])>d){
			corect=0;
			break;
		}
		int pi=d/cmmdc(v[i],d),pj=d/cmmdc(v[j],d);
		v[i]*=pi,v[j]*=pj;
	}
	freopen("oz.out","w",stdout);
	if (corect)
		for(int i=1;i<=n;i++)
			printf("%d ",v[i]);
	else
		printf("-1");
	return 0;
}