Cod sursa(job #728580)

Utilizator danalex97Dan H Alexandru danalex97 Data 28 martie 2012 20:03:15
Problema Oz Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;

ifstream F("oz.in");
ofstream G("oz.out");

#define Nmax 10011
#define ll long long 

ll A[Nmax];
ll a[Nmax],b[Nmax],c[Nmax];
ll N,M;

inline ll cmmdc(ll x,ll y){if (x) return cmmdc(y%x,x);else return y;}

int main()
{
	F>>N>>M;
	for (ll i=1;i<=N;++i)
		A[i]=1;
	for (ll i=1;i<=M;++i)
	{
		F>>a[i]>>b[i]>>c[i];
		A[a[i]]=A[a[i]]/cmmdc(A[a[i]],c[i])*c[i];
		A[b[i]]=A[b[i]]/cmmdc(A[b[i]],c[i])*c[i];
	}
	
	for (ll i=1;i<=M;++i)
		if ( cmmdc(A[a[i]],A[b[i]]) != c[i] )
			{G<<"-1\n";	F.close();	G.close();	return 0;}

	for (ll i=1;i<=N;++i)
		G<<A[i]<<' ';G<<'\n';
	F.close();
	G.close();
	return 0;
}