Cod sursa(job #171563)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 4 aprilie 2008 16:12:26
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream.h>
int  x[100010][5], n,m,ok=1,q;
long v[10010],a,b,r,p,aux,i,j,k;
int main()
{

ifstream f("oz.in");
ofstream g("oz.out");

f>>n>>m;

for(i=1;i<=n;i++) v[i]=1;

for(q=1;q<=m;q++)

  { f>>x[q][1]>>x[q][2]>>x[q][3];

   i=x[q][1];
   j=x[q][2];
   k=x[q][3];

   a=v[i]; b=k;
   if(a<b) {aux=a; a=b; b=aux;}
   p=a*b;

    while(b)

     { r=a%b; a=b; b=r;}

   v[i]=p/a;

   a=v[j]; b=k;
   if(a<b) {aux=a; a=b; b=aux;}
   p=a*b;

    while(b)

     { r=a%b; a=b; b=r;}

   v[j]=p/a;
  }

  for(q=1;q<=m;q++)

  {
   a=v[x[q][1]]; b=v[x[q][2]];
   k=x[q][3];
    if(a<b) {aux=a; a=b; b=aux;}
    if(a>2000000) {ok=0; break;}

    while(b)

     { r=a%b; a=b; b=r;}

   if(a!=k) {ok=0; break;}
  }

if(!ok) g<<"-1";

 else

   for(i=1;i<=n;i++)
    g<<v[i]<<" ";

f.close();
g.close();
return 0;
}