Cod sursa(job #718737)

Utilizator romircea2010FMI Trifan Mircea Mihai romircea2010 Data 21 martie 2012 01:55:03
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

int n, m, x[100005], y[100005], d[100005];
long long a[10005];

inline long long cmmdc (long long p, long long q)
{
	long long r;
	while (q)
	{
		r = p%q;
		p = q;
		q = r;
	}
	return p;
}

inline long long cmmmc(long long p, long long q)
{
	return (p*q)/cmmdc(p, q);
}

int main()
{
	ifstream f("oz.in");
	ofstream g("oz.out");
	f>>n>>m;
	int i;
	for (i=1; i<=n; i++)
		a[i] = 1;
	for (i=1; i<=m; i++)
	{
		f>>x[i]>>y[i]>>d[i];
		a[x[i]] = cmmmc(a[x[i]], d[i]);
		a[y[i]] = cmmmc(a[y[i]], d[i]);
	}
	
	for (i=1; i<=m; i++)
		if (cmmdc(a[x[i]], a[y[i]]) != d[i])
		{
			g<<-1<<"\n";
			g.close();
			return 0;
		}
	for (i=1; i<=n; i++)
		g<<a[i]<<" ";
	g<<" ";
	g.close();
	return 0;
}