fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main() {
  5. int err, n, Tx, Ty;
  6. scanf("%d", &err);
  7. scanf("%d", &n);
  8. scanf("%d %d", &Tx, &Ty);
  9.  
  10. int minHeadError = err * 15; // 1 mil error for head width of 15 cm
  11. int minTorsoError = err * 35; // 1 mil error for torso width of 35 cm
  12.  
  13. int minHeadIndex = -1;
  14. int minTorsoIndex1 = -1;
  15. int minTorsoIndex2 = -1;
  16.  
  17. for (int i = 0; i < n; ++i) {
  18. int x, y;
  19. scanf("%d %d", &x, &y);
  20.  
  21. int distanceSquared = (x - Tx) * (x - Tx) + (y - Ty) * (y - Ty);
  22.  
  23. if (distanceSquared <= minHeadError * minHeadError) {
  24. // Sniper can hit the target in the head
  25. minHeadIndex = i;
  26. break;
  27. } else if (distanceSquared <= minTorsoError * minTorsoError) {
  28. // Sniper can hit the target in the torso
  29. if (minTorsoIndex1 == -1) {
  30. minTorsoIndex1 = i;
  31. } else {
  32. minTorsoIndex2 = i;
  33. break;
  34. }
  35. }
  36. }
  37.  
  38. if (minHeadIndex != -1) {
  39. printf("%d\n", minHeadIndex);
  40. } else if (minTorsoIndex2 != -1) {
  41. printf("%d %d\n", minTorsoIndex1, minTorsoIndex2);
  42. } else {
  43. printf("abort\n");
  44. }
  45.  
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0s 5532KB
stdin
20
3
0 0
-500 1500
1000 200
3000 1000
stdout
abort