Cod sursa(job #1205711)

Utilizator avalalexandra aval Data 7 iulie 2014 20:03:48
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include<fstream>
using namespace std;
int cmmdc(long a,long b)
{
    int  c;
    while(b)
    {
        c=a%b;
        a=b;
        b=c;
    }
    return a;
}
int main()
{
  long a,b,c,m,l,x,y,i,ok,t;
  ifstream f("euclid3.in");
  ofstream g("euclid3.out");
  f>>t;
  for(i=1;i<=t;i++)
  {
      f>>a>>b>>c;
      if(b!=0)
      {l=cmmdc(a,b);
      if(c%l!=0)
       g<<0<<" "<<0<<'\n';
      else
      {
          a=a/l;b=b/l;c=c/l;
          m=b;
          ok=0;
        while(ok==0)
          {
              if((m-c)%a==0)
              {
                  x=(m-c)/(-a);
                  y=(c-a*x)/b;
                  ok=1;
              }
              else
              {
                  m=m+b;
              }
          }
         g<<x<<" "<<y<<'\n';
      }
      }
      else
      {   if(a!=0)
          {x=c/a;
          y=0;
          g<<x<<" "<<y<<'\n';}
          else
          g<<0<<" "<<0<<'\n';
      }
  }
  f.close();
  g.close();
    return 0;
}