#include <stdio.h>
#include <math.h>
// 定義一個結構體,表示二維坐標點
typedef struct {
int x, y;
} Point;
int main() {
// 讀取輸入的誤差值和總共的藏身點數量
int err, n;
// 讀取目標點的坐標
Point target, hide_sites[n];
scanf("%d %d", &target.
x, &target.
y);
// 讀取所有藏身點的坐標
for (int i = 0; i < n; ++i) {
scanf("%d %d", &hide_sites
[i
].
x, &hide_sites
[i
].
y); }
// 初始化最小頭部誤差和頭部索引,最小軀幹誤差和軀幹索引
int min_head_error = 1000;
int head_index = -1;
int min_torso_error = 1000;
int torso_index1 = -1, torso_index2 = -1;
// 遍歷所有藏身點,計算與目標的距離,更新最小誤差和對應的索引
for (int i = 0; i < n; ++i) {
int distance_square = (hide_sites[i].x - target.x) * (hide_sites[i].x - target.x) +
(hide_sites[i].y - target.y) * (hide_sites[i].y - target.y);
int error
= sqrt(distance_square
);
// 更新最小頭部誤差和頭部索引
if (error <= min_head_error) {
min_head_error = error;
head_index = i;
}
// 更新最小軀幹誤差和軀幹索引
if (error <= min_torso_error) {
min_torso_error = error;
torso_index2 = torso_index1;
torso_index1 = i;
}
}
int error = 0;
int target_width = 0;
// 根據最小誤差計算目標的寬度
if (min_head_error <= 1000) {
target_width = 15;
} else if (min_torso_error <= 2000) {
target_width = 35;
}
// 計算誤差值
if (target_width > 0) {
error = (target_width * 100) / min_head_error;
}
// 根據目標的寬度和誤差值輸出結果
if (target_width == 15) {
// 如果目標是頭部,輸出頭部的藏身點索引
} else if (target_width == 35) {
// 如果目標是軀幹,輸出兩個軀幹的藏身點索引
printf("%d %d\n", torso_index1
, torso_index2
); } else {
// 如果無法擊中目標,輸出 "abort"
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgovLyDlrprnvqnkuIDlgIvntZDmp4vpq5TvvIzooajnpLrkuozntq3lnZDmqJnpu54KdHlwZWRlZiBzdHJ1Y3QgewogICAgaW50IHgsIHk7Cn0gUG9pbnQ7CgppbnQgbWFpbigpIHsKICAgIC8vIOiugOWPlui8uOWFpeeahOiqpOW3ruWAvOWSjOe4veWFseeahOiXj+i6q+m7nuaVuOmHjwogICAgaW50IGVyciwgbjsKICAgIHNjYW5mKCIlZCIsICZlcnIpOwogICAgc2NhbmYoIiVkIiwgJm4pOwoKICAgIC8vIOiugOWPluebruaomem7nueahOWdkOaomQogICAgUG9pbnQgdGFyZ2V0LCBoaWRlX3NpdGVzW25dOwogICAgc2NhbmYoIiVkICVkIiwgJnRhcmdldC54LCAmdGFyZ2V0LnkpOwoKICAgIC8vIOiugOWPluaJgOacieiXj+i6q+m7nueahOWdkOaomQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBzY2FuZigiJWQgJWQiLCAmaGlkZV9zaXRlc1tpXS54LCAmaGlkZV9zaXRlc1tpXS55KTsKICAgIH0KCiAgICAvLyDliJ3lp4vljJbmnIDlsI/poK3pg6joqqTlt67lkozpoK3pg6jntKLlvJXvvIzmnIDlsI/ou4DlubnoqqTlt67lkozou4DlubnntKLlvJUKICAgIGludCBtaW5faGVhZF9lcnJvciA9IDEwMDA7CiAgICBpbnQgaGVhZF9pbmRleCA9IC0xOwogICAgaW50IG1pbl90b3Jzb19lcnJvciA9IDEwMDA7CiAgICBpbnQgdG9yc29faW5kZXgxID0gLTEsIHRvcnNvX2luZGV4MiA9IC0xOwoKICAgIC8vIOmBjeatt+aJgOacieiXj+i6q+m7nu+8jOioiOeul+iIh+ebruaomeeahOi3nembou+8jOabtOaWsOacgOWwj+iqpOW3ruWSjOWwjeaHieeahOe0ouW8lQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBpbnQgZGlzdGFuY2Vfc3F1YXJlID0gKGhpZGVfc2l0ZXNbaV0ueCAtIHRhcmdldC54KSAqIChoaWRlX3NpdGVzW2ldLnggLSB0YXJnZXQueCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoaWRlX3NpdGVzW2ldLnkgLSB0YXJnZXQueSkgKiAoaGlkZV9zaXRlc1tpXS55IC0gdGFyZ2V0LnkpOwogICAgICAgIGludCBlcnJvciA9IHNxcnQoZGlzdGFuY2Vfc3F1YXJlKTsKCiAgICAgICAgLy8g5pu05paw5pyA5bCP6aCt6YOo6Kqk5beu5ZKM6aCt6YOo57Si5byVCiAgICAgICAgaWYgKGVycm9yIDw9IG1pbl9oZWFkX2Vycm9yKSB7CiAgICAgICAgICAgIG1pbl9oZWFkX2Vycm9yID0gZXJyb3I7CiAgICAgICAgICAgIGhlYWRfaW5kZXggPSBpOwogICAgICAgIH0KCiAgICAgICAgLy8g5pu05paw5pyA5bCP6LuA5bm56Kqk5beu5ZKM6LuA5bm557Si5byVCiAgICAgICAgaWYgKGVycm9yIDw9IG1pbl90b3Jzb19lcnJvcikgewogICAgICAgICAgICBtaW5fdG9yc29fZXJyb3IgPSBlcnJvcjsKICAgICAgICAgICAgdG9yc29faW5kZXgyID0gdG9yc29faW5kZXgxOwogICAgICAgICAgICB0b3Jzb19pbmRleDEgPSBpOwogICAgICAgIH0KICAgIH0KCiAgICBpbnQgZXJyb3IgPSAwOwogICAgaW50IHRhcmdldF93aWR0aCA9IDA7CgogICAgLy8g5qC55pOa5pyA5bCP6Kqk5beu6KiI566X55uu5qiZ55qE5a+s5bqmCiAgICBpZiAobWluX2hlYWRfZXJyb3IgPD0gMTAwMCkgewogICAgICAgIHRhcmdldF93aWR0aCA9IDE1OwogICAgfSBlbHNlIGlmIChtaW5fdG9yc29fZXJyb3IgPD0gMjAwMCkgewogICAgICAgIHRhcmdldF93aWR0aCA9IDM1OwogICAgfQoKICAgIC8vIOioiOeul+iqpOW3ruWAvAogICAgaWYgKHRhcmdldF93aWR0aCA+IDApIHsKICAgICAgICBlcnJvciA9ICh0YXJnZXRfd2lkdGggKiAxMDApIC8gbWluX2hlYWRfZXJyb3I7CiAgICB9CgogICAgLy8g5qC55pOa55uu5qiZ55qE5a+s5bqm5ZKM6Kqk5beu5YC86Ly45Ye657WQ5p6cCiAgICBpZiAodGFyZ2V0X3dpZHRoID09IDE1KSB7CiAgICAgICAgLy8g5aaC5p6c55uu5qiZ5piv6aCt6YOo77yM6Ly45Ye66aCt6YOo55qE6JeP6Lqr6bue57Si5byVCiAgICAgICAgcHJpbnRmKCIlZFxuIiwgaGVhZF9pbmRleCk7CiAgICB9IGVsc2UgaWYgKHRhcmdldF93aWR0aCA9PSAzNSkgewogICAgICAgIC8vIOWmguaenOebruaomeaYr+i7gOW5ue+8jOi8uOWHuuWFqeWAi+i7gOW5ueeahOiXj+i6q+m7nue0ouW8lQogICAgICAgIHByaW50ZigiJWQgJWRcbiIsIHRvcnNvX2luZGV4MSwgdG9yc29faW5kZXgyKTsKICAgIH0gZWxzZSB7CiAgICAgICAgLy8g5aaC5p6c54Sh5rOV5pOK5Lit55uu5qiZ77yM6Ly45Ye6ICJhYm9ydCIKICAgICAgICBwcmludGYoImFib3J0XG4iKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=