Advertisement
Guest User

Hopper

a guest
Oct 7th, 2015
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. long long a,b,a1,b1,a2,b2;
  6.  
  7. void init()
  8. { cin >> a  >> b;
  9.   cin >> a1 >> b1;
  10.   cin >> a2 >> b2;
  11.  
  12.   // долен ляв - горен десен
  13.   if(a1>a2) swap(a1,a2);
  14.   if(b1>b2) swap(b1,b2);
  15. }
  16.  
  17.  
  18. long long dist(long long x,  long long y,
  19.                long long x1, long long y1,
  20.                long long x2, long long y2)
  21. {
  22.   if(x1<=x && x<=x2 && y1<=y && y<=y2)
  23.     return 0; // скакалецът е на поляната
  24.  
  25.   if(x1<=x && x<=x2) // северно или южно от поляната
  26.     return min(abs(y1-y),abs(y2-y));
  27.  
  28.   if(y1<=y && y<=y2) // западно или източно от поляната
  29.     return min(abs(x1-x),abs(x2-x));
  30.  
  31.   // търсим най-близкия връх
  32.   long long r1 = (x1-x)*(x1-x) + (y1-y)*(y1-y);
  33.   long long r2 = (x2-x)*(x2-x) + (y1-y)*(y1-y);
  34.   long long r3 = (x1-x)*(x1-x) + (y2-y)*(y2-y);
  35.   long long r4 = (x2-x)*(x2-x) + (y2-y)*(y2-y);
  36.  
  37.   long double r = min(min(r1,r2),min(r3,r4));
  38.   long long d = ceil(sqrt(r));
  39.   return d;
  40. }
  41.  
  42. int main()
  43. { init();
  44.  
  45.   cout << dist(a,b,a1,b1,a2,b2) << endl;
  46.  
  47.   return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement