fork download
  1. program giftcard;
  2. var N,C1,C2,N1,N2,MCD:int64;
  3. procedure Euclide_Bezout (a, b, c:int64;var MCD:int64; var k:int64; var h:int64);
  4. var x,app:int64;
  5. begin
  6. if a<b then begin app:=a; a:=b; b:=app; end;
  7. if b=0 then
  8. begin
  9. if c mod a=0 then
  10. begin
  11. MCD:=a;
  12. k:=c div a;
  13. h:=1;
  14. exit
  15. end;
  16. end;
  17. Euclide_Bezout(b,a mod b,c,MCD,k,h);
  18. h:=h-k*(a div b);
  19. x:=(h-1) div (a div MCD);
  20. k:=k+x*(b div MCD);
  21. h:=h-x* (a div MCD);
  22. writeln(k,' ',h);
  23. if (K<=0) or (k>(c div a)) then exit;
  24. if (h<0) or (h>(a div MCD)) then exit;
  25. if (k*a+h*b<>c) then exit;
  26.  
  27. end;
  28.  
  29. begin
  30. readln(N,C1,C2);
  31. N1:=10000; N2:=0;
  32. Euclide_Bezout(C1,C2,N,MCD,N1,N2);
  33. writeln(MCD);
  34. writeln(N1,' ',N2);
  35. end.
  36.  
Success #stdin #stdout 0.01s 5276KB
stdin
12 8 4
stdout
0 1
4
0 1