fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. typedef struct {
  5. int x, y;
  6. } Point;
  7.  
  8. int main() {
  9. int err, n;
  10. scanf("%d", &err);
  11. scanf("%d", &n);
  12.  
  13. Point target, hide_sites[n];
  14. scanf("%d %d", &target.x, &target.y);
  15.  
  16. for (int i = 0; i < n; ++i) {
  17. scanf("%d %d", &hide_sites[i].x, &hide_sites[i].y);
  18. }
  19.  
  20. int min_head_error = 100 * err; // Convert error to hundredth of a mil
  21. int head_index = -1;
  22. int min_torso_error = 100 * err;
  23. int torso_index1 = -1, torso_index2 = -1;
  24.  
  25. for (int i = 0; i < n; ++i) {
  26. int distance_square = (hide_sites[i].x - target.x) * (hide_sites[i].x - target.x) +
  27. (hide_sites[i].y - target.y) * (hide_sites[i].y - target.y);
  28. int error = sqrt(distance_square);
  29.  
  30. if (error <= min_head_error) {
  31. min_head_error = error;
  32. head_index = i;
  33. }
  34.  
  35. if (error <= min_torso_error) {
  36. min_torso_error = error;
  37. torso_index2 = torso_index1;
  38. torso_index1 = i;
  39. }
  40. }
  41.  
  42. if (min_head_error <= 1000) {
  43. printf("%d\n", head_index);
  44. } else if (min_torso_error <= 2000) {
  45. printf("%d %d\n", torso_index1, torso_index2);
  46. } else {
  47. printf("abort\n");
  48. }
  49.  
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0.01s 5500KB
stdin
20
3
0 0
-500 1500
1000 200
3000 1000
stdout
1 0