CCF-CSP练习 称检测点查询
CCF 202009-1 称检测点查询
题目背景
2020 年 6 月 8 日,国务院联防联控机制发布《关于加快推进新冠病毒核酸检测的实施意见》,提出对“密切接触者”等八类重点人群“应检尽检”,其他人群“愿检尽检”。
问题描述
输入格式
输出格式
输出共三行,按距离从近到远,依次输出距离该市民最近的三个检测点编号。
样例输入1
3 2 2
2 2
2 3
2 4
样例输出1
1
2
3
样例输入2
5 0 1
-1 0
0 0
1 0
0 2
-1 2
样例输出2
2
4
1
样例2解释
评测用例规模与约定
提示
我的提交
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,x,y;//表示检测点总数和市民所在位置
cin>>n>>x>>y;
int i,a,b;
float d[1005],no=999,nt=999,nth=999;
int noi=0,nti=0,nthi=0;//number one/two/three
for(i=1;i<n+1;i++)
{
cin>>a>>b;
d[i]=sqrt((x-a)*(x-a)+(y-b)*(y-b));
if(d[i]<no)
{
nth=nt;nthi=nti;//原第二退到第三
nt=no;nti=noi;//原第一退到第二
no=d[i];noi=i;
//cout<<noi<<endl<<nti<<endl<<nthi;
}
else if(d[i]>=no&&d[i]<nt)
{
nth=nt;nthi=nti;//原第二退到第三
nt=d[i];nti=i;
//cout<<noi<<endl<<nti<<endl<<nthi;
}
else if(d[i]>=nt&&d[i]<nth)
{
nth=d[i];nthi=i;
//cout<<noi<<endl<<nti<<endl<<nthi;
}
///cout<<"i="<<i<<" d="<<d[i]<<endl<<noi<<" "<<no<<endl<<nti<<" "<<nt<<endl<<nthi<<" "<<nth<<endl;
}
cout<<noi<<endl<<nti<<endl<<nthi;
}