Cod sursa(job #169549)

Utilizator stefynr8Space Monkey stefynr8 Data 1 aprilie 2008 19:49:32
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream.h>

#include <iostream.h>

long m,n,i,j,d,h,v[10001],ok;

long long x,y;

long long cmmdc(long long a, long long b)
{
  long long r;
  do{
   r=a%b;
   a=b;
   b=r;
  }while (r!=0);
  return a;
}
int main()

{
 long a[100001][3];
 fstream f1("oz.in",ios::in);
 fstream f2("oz.out",ios::out);


 f1>>n;
 f1>>m;

 for(h=1;h<=n;h++)
    {
     v[h]=1;
     }

 ok=1;
 for(h=1;h<=m;h++)
    {
     f1>>i;
     f1>>j;
     f1>>d;
     a[h][0]=i;
     a[h][1]=j;
     a[h][2]=d;

     // cmmmc
     x=v[i]*d/cmmdc(v[i],d);
     y=v[j]*d/cmmdc(v[j],d);
     if (x>2000000000 || y>2000000000) {
      ok=0; break;
	 }
	 else { v[i]=x; v[j]=y;
	 }
     }


 f1.close();

 if (ok) {
   for (h=1;h<=m;h++)
     if (cmmdc(v[a[h][0]],v[a[h][1]])!=a[h][2]) {
       ok=0;
       break;
     }
 }
 if (!ok) f2<<"-1";
  else for(h=1;h<=n;h++)
	  {
	   f2 << v[h]<<" ";
	   }

 f2.close();

 return 0;
}