CodeForces 7C - Line

扩展欧几里德算法问题。
#include <iostream>
#include <cstdio>
typedef long long ll;
using namespace std;
int extended_gcd(ll a,ll b,ll &x,ll &y)
{
      if(b==0)
      {
        x=1;
        y=0;
        return a;
      }
      ll res=extended_gcd(b,a%b,y,x);
      y-=x*(a/b);
      return res;
}
int main()
{
  ll a,b,c,x,y;
  cin>>a>>b>>c;
  ll tmp=extended_gcd(a,b,x,y);
  if(c%tmp)
    cout<<"-1\n";
else 
    printf("%I64d %I64d\n",-x*(c/tmp),-y*(c/tmp));
return 0;
}

你可能感兴趣的:(Math,扩展欧几里德)