Cod sursa(job #166888)

Utilizator timotei21Timotei Dolean timotei21 Data 28 martie 2008 16:46:24
Problema Oz Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream.h>
int cmmdc(long a, long b)
{
 int r;
 do { r = a % b; a = b; b = r; } while (r);
 if (a==1) return 0;
 return a;
}
int main()
{
 ifstream fin("oz.in");
 ofstream fout("oz.out");
 long i; int a,b,d;
 long m;
 int n,poz=0;
 long sol[100]={0};
 fin>>n>>m;
 for (i=1;i<=n;i++)
 {
  fin>>a>>b>>d;
  if (!sol[a] && !sol[b])
  {
   for (int k=1;k<100;k++)
    for (int l=1;l<100;l++)
     if (cmmdc(k,l)==d)
     {
      sol[a]=k;
      sol[b]=l;
     }
  }
  else if (!sol[a])
   for (int k=1;k<100;k++)
    if (cmmdc(k,sol[b])==d) sol[a]=k;
  else if (!sol[b])
   for (int k=1;k<100;k++)
    if (cmmdc(k,sol[b])==d) sol[a]=k;
  else if (sol[a] && sol[b])
  {
   for (int k=1;k<100;k++)
    for (int l=1;l<100;l++)
     if (cmmdc(sol[a]*k,sol[b]*l)==d)
     {
      sol[a]=sol[a]*k;
      sol[b]=sol[b]*l;
     }
  }
 }
 for (i=1;i<=n;i++)
  fout<<sol[i]<<" ";
 fout<<endl;
 return 0;
}