Cod sursa(job #376906)

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

long long 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;
	long long d;
	scanf("%lld%d",&n,&m);
	for(i=1;i<=n;i++)
		v[i]=1l;
	for( ; m ; --m){
		scanf("%d%d%lld",&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;
		if(v[i]>2000000000 || v[j]>2000000000){
			corect=0;
			break;
		}
			
	}
	freopen("oz.out","w",stdout);
	if (corect)
		for(int i=1;i<=n;i++)
			printf("%lld ",v[i]);
	else
		printf("-1");
	return 0;
}