Cod sursa(job #469124)

Utilizator loginLogin Iustin Anca login Data 6 iulie 2010 14:34:31
Problema Oz Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
# include <fstream>
# define l 2000000000
using namespace std;
int n, m, v[10003], nn;

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

int main ()
{
	int i, j, c;
	ifstream fin ("oz.in");
	ofstream fout ("oz.out");
	fin>>n>>m;
	for(;m--;)
	{
		fin>>i>>j>>c;
		if (!v[i])v[i]=c, ++nn;
		else if (c>v[i] && c%v[i]==0)v[i]=c;
		else v[i]=v[i]*c/cmmdc(c, v[i]);
		if (!v[j])v[j]=c, ++nn;
		else if (c>v[j] && c%v[j]==0)v[j]=c;
		else v[j]=v[j]*c/cmmdc(c, v[j]);
		if (v[i]>l || v[j]>l)
		{
			fout<<"-1";
			return 0;
		}
	}
	if(nn!=n)
		fout<<"-1";
	else
		for(int i=1;i<=n;++i)
			fout<<v[i]<<" ";
	return 0;
}