Cod sursa(job #1172156)

Utilizator dr_personalityEftime Andrei Horatiu dr_personality Data 16 aprilie 2014 21:24:01
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
using namespace std;
ifstream in("oz.in");
ofstream out("oz.out");

const int nmax = 10006, mmax = 100006;
int vsol[nmax], n, m, x[mmax], y[mmax], d[mmax];

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

int main(){
	int player_unu=0;

	in>>n>>m;
	for(int i = 1; i<=n; i++)
	{
		vsol[i] = 1;
	}

	for(int i = 0; i<m; i++)
	{
		in>>x[i]>>y[i]>>d[i];

		vsol[x[i]] = vsol[x[i]] * (d[i] / cmmdc(vsol[x[i]], d[i]));
		vsol[y[i]] = vsol[y[i]] * (d[i] / cmmdc(vsol[y[i]], d[i]));
	}

	for(int i = 0; i<m; i++)
	{
		if(cmmdc(vsol[x[i]], vsol[y[i]])!=d[i])
		{
			out<<"-1"<<'\n';
			return 0;
		}
	}

	for(int i = 1; i<=n; i++)
		out<<vsol[i]<<" ";
	out<<'\n';
	return player_unu;
}