Cod sursa(job #569274)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 1 aprilie 2011 11:30:59
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>

using namespace std;

const char iname[] = "oz.in";
const char oname[] = "oz.out";

ifstream fin(iname);
ofstream fout(oname);

int a, b, d, n, m, i;
int v[10005];

struct intrebare
{
	int x, y, ceva;
}T[100005];

int cmmdc(int a, int b)
{
	if(!b)
		return a;
	else
		return cmmdc(b, a % b);
}

int main()
{	
	fin >> n >> m;
	for(i = 1; i <= n; i ++)
		v[i] = 1;
	for(i = 1; i <= m; i ++)
	{
		fin >> a >> b >> d;
		T[i].x = a, T[i].y = b, T[i].ceva = d;
		v[a] = (long long)v[a] * d / cmmdc(v[a], d);
		v[b] = (long long)v[b] * d / cmmdc(v[b], d);
	}
	
	for(i = 1; i <= m; i ++)
	{
		if(cmmdc(v[T[i].x], v[T[i].y]) != T[i].ceva)
		{
			fout << "-1\n";
			exit(0);
		}
	}
	for(i = 1; i <= n; i ++)
		fout << v[i] << " ";
	return 0;
}