题目
试题编号: 202009-1
试题名称: 称检测点查询
时间限制: 1.0s
内存限制: 256.0MB
使用语言:C++
得分:100
解题思路
由题目可得
代码
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n, x, y;
int X[200];
int Y[200];
double Q[200];
double QC[200];
scanf("%d%d%d", &n, &x, &y);
for (int i = 0; i < n; i++)
{
scanf("%d%d", &X[i], &Y[i]);
Q[i] = (X[i] - x) * (X[i] - x) + (Y[i] - y) * (Y[i] - y);
}
int F[3] = {0, 0, 0};
//依次找出最小的数
for (int i = 0; i < n; i++)
{
if (Q[i] < Q[F[0]])
{
F[0] = i;
}
}
if (F[0] == 0)
{
F[1] = F[2] = 1;
}
for (int i = 0; i < n; i++)
{
if (Q[i] < Q[F[1]] && i != F[0])
{
F[1] = i;
}
}
if (F[1] == 1)
{
F[2] = 2;
}
for (int i = 0; i < n; i++)
{
if (Q[i] < Q[F[2]] && i != F[0] && i != F[1])
{
F[2] = i;
}
}
printf("%d\n%d\n%d", F[0] + 1, F[1] + 1, F[2] + 1);
// system("pause");
return 0;
}