fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <string>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11. long long a, b, x = 0, y = 0, c, d, x1, y1, rez = 0, x2, y2, x3, y3;
  12. bool ch1 = false, ch2 = false;
  13. cin >> a >> b;
  14. cin >> c >> d;
  15. x1 = (a + c) / 2;
  16. y1 = (b + d) / 2;
  17.  
  18. if (x1*x1 + y1*y1 >= a*a + b*b || x1*x1 + y1*y1 >= c*c + d*d){
  19. if (a*a + b*b > c*c + d*d){
  20. x1 = c;
  21. y1 = d;
  22. } else {
  23. x1 = a;
  24. y1 = b;
  25. };
  26. ch2 = true;
  27. }
  28. while(x != x1 || y != y1){
  29. if (x1 > x) x++;
  30. else if(x1 < x) x--;
  31. if (y1 > y) y++;
  32. else if(y1 < y) y--;
  33. rez++;
  34. }
  35. x2 = a;
  36. y2 = b;
  37. x3 = c;
  38. y3 = d;
  39. if ((x - a)*(x - a) + (y - b)*(y - b) > (x - c)*(x - c) + (y - d)*(y - d) || (x == a && y == b)){
  40. x2 = c;
  41. y2 = d;
  42. x3 = a;
  43. y3 = b;
  44. ch1 = true;
  45. }
  46. while(x != x2 || y != y2){
  47. if (x2 > x) x++;
  48. else if(x2 < x) x--;
  49. if (y2 > y) y++;
  50. else if(y2 < y) y--;
  51. rez++;
  52. }
  53. x2 = x;
  54. y2 = y;
  55. if ((x - x3)*(x - x3) + (y - y3)*(y - y3) > (x1 - x3)*(x1 - x3) + (y1 - y3)*(y1 - y3)){
  56. x2 = x1;
  57. y2 = y1;
  58. }
  59. while((x != x2 || y != y2) && ch1 == false){
  60. if (x2 > x) x++;
  61. else if(x2 < x) x--;
  62. if (y2 > y) y++;
  63. else if(y2 < y) y--;
  64. rez++;
  65. }
  66. cout << rez;
  67. return 0;
  68. }
Success #stdin #stdout 0s 4272KB
stdin
2 0
84 0
stdout
84