CCf20190901——称检测点查询
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, x, y;
cin >> n >> x >> y;
int x1, y1, d[1000], a[3];
bool used[1000] = {false}; // 标记数组,用来记录哪些点已经被选中
for (int i = 0; i < n; i++) {
cin >> x1 >> y1;
d[i] = pow((x - x1),2) + pow((y - y1),2);
}
// 找到前三个最小距离的点的原始索引
for (int i = 0; i < 3; i++) {
int min_dist = 100000;
int min_index = -1;
for (int j = 0; j < n; j++) {//每次找到距离最小的点
if (!used[j] && d[j] < min_dist) {
min_dist = d[j];
min_index = j;
}
}
if (min_index != -1) {
a[i] = min_index + 1;
used[min_index] = true; // 标记这个点已经被使用
}
}
// 输出前三个最小距离的点的索引
for (int i = 0; i < 3; i++) {
cout << a[i] <<endl;
}
cout << endl;
return 0;
}