Cod sursa(job #166883)

Utilizator laserbeamBalan Catalin laserbeam Data 28 martie 2008 16:41:27
Problema Oz Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<fstream.h>
long x[10001],a1[100],a2[100],i,j,cmmdc1,cmmdc2[100],n,m,aux1,aux2;
long cmmdc(long tz, long sh)
{
	long r;
	do {
		r=tz%sh;
		tz=sh;
		sh=r;
	}while (r);
	return tz;
}

int main()
{

ifstream f("oz.in");
f>>n>>m;
for (i=1;i<=n;i++)x[i]=1;

for (i=1;i<=m;i++)
{
	f>>a1[i]>>a2[i]>>cmmdc2[i];
	cmmdc1=cmmdc2[i];
	aux1=x[a1[i]];
	aux2=x[a2[i]];
	x[a1[i]]*=cmmdc1/cmmdc(x[a1[i]],cmmdc1);
	x[a2[i]]*=cmmdc2[i]/cmmdc(x[a2[i]],cmmdc2[i]);
}
int ind=1;
for (i=1;i<=m;i++)
{
	if (cmmdc(x[a1[i]],x[a2[i]])!=cmmdc2[i])
	{
		ind=0;
		i=100100;
	}
}



f.close();
ofstream g("oz.out");
if (ind)	for (i=1;i<=n;i++)g<<x[i]<<" ";
else g<<"-1";
g<<'\n';
g.close();

return 0;
}