Cod sursa(job #166899)

Utilizator timotei21Timotei Dolean timotei21 Data 28 martie 2008 17:05:03
Problema Oz Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<fstream.h>
long cmmdc(long tz, long sh)
{
	long r;
	do {
		r=tz%sh;
		tz=sh;
		sh=r;
	}while (r);
	return tz;
}

int main()
{
long x[1001]={1},a1[1001]={1},a2[1001]={1},i,j,d,d2[1001],n,m,aux1,aux2;
ifstream f("oz.in");
f>>n>>m;

for (i=1;i<=m;i++)
{
	f>>a1[i]>>a2[i]>>d2[i];

	d=d2[i];
	aux1=x[a1[i]];
	aux2=x[a2[i]];

	x[a1[i]]*=d/cmmdc(aux1,d);
	x[a2[i]]*=d/cmmdc(aux2,d);
}
int ind=1;

for (i=1;i<=m;i++)
{
 if (cmmdc(x[a1[i]],x[a2[i]])!=d2[i])
 {
  ind=0;
  break;
 }
}
 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;
}