fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <set>
  5. using namespace std;
  6.  
  7. int64_t Length(int64_t x1, int64_t y1, int64_t x2, int64_t y2){
  8. return int64_t(abs(x1-x2)) + int64_t(abs(y1-y2)); }
  9.  
  10. int main() {
  11. int n, k, a, b;
  12. cin >> n;
  13. vector<int64_t> x(n), y(n);
  14. for (int i = 0; i < n; ++i){
  15. cin >> x[i] >> y[i];
  16. }
  17. cin >> k >> a >> b;
  18. a -= 1;
  19. b -= 1;
  20. set<int> s1, s2,s, sl;
  21. s1.insert(a);
  22. for (int i = 0; i < n; ++i){if (i != a) {s2.insert(i);}}
  23.  
  24. for (int res = 1; res < n; ++res){
  25. for(auto i : s2){
  26. for (auto j:s1){
  27. if (Length(x[j] , y[j], x[i],y[i]) <= k){
  28. if (i == b){
  29. cout << res;
  30. return 0;
  31. }
  32. s.insert(j);
  33. break;
  34. }
  35. }
  36. sl.insert(i);
  37. }
  38. s1 = s;
  39. s2 = sl;
  40. sl.clear();
  41. s.clear();
  42. }
  43. cout << -1;
  44. return 0;
  45. }
Success #stdin #stdout 0.01s 5416KB
stdin
4
0 0
2 0
0 2
2 2
1
1 4
stdout
-1