1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#include <cstdlib> #include <algorithm> #include <cstring> #include <cctype> using namespace std; typedef long long ll; ll a,b,d,x1,x2,y1,y2; ll (ll aa,ll bb){ return bb?gcd(bb,aa%bb):aa; } ll extgcd(ll aa,ll bb,ll &xx,ll &yy){ if(!bb){ xx=1,yy=0; return aa; } ll dd=extgcd(bb,aa%bb,yy,xx); yy-=(aa/bb)*xx; return dd; } ll Abs(ll x){ return (x<0)?(-x):x; } void work(ll a_,ll b_,ll &x,ll &y){ ll g=extgcd(a_,b_,x,y),t=b_/g; x*=d/g,x=(x%t+t)%t; y=Abs((a_*x-d)/b_); } int main(){ for(;;){ scanf("%lld%lld%lld",&a,&b,&d); if(!a&&!b&&!d)break; work(a,b,x1,y1); work(b,a,x2,y2); if(x1+y1<x2+y2)printf("%lld %lldn",x1,y1); else printf("%lld %lldn",y2,x2); } return 0; }
|
近期评论