當前位置:
首頁 >
【CCF - 202009-1】称检测点查询 c语言
發布時間:2023/12/10
49
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【CCF - 202009-1】称检测点查询 c语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目背景
2020 年 6 月 8 日,國務院聯防聯控機制發布《關于加快推進新冠病毒核酸檢測的實施意見》,提出對“密切接觸者”等八類重點人群“應檢盡檢”,其他人群“愿檢盡檢”。
問題描述
某市設有?n?個核酸檢測點,編號從?1?到?n,其中?i?號檢測點的位置可以表示為一個平面整數坐標?(xi,yi)。
為方便預約核酸檢測,請根據市民所在位置?(X,Y),查詢距其最近的三個檢測點。
多個檢測點距離相同時,編號較小的視為更近。
輸入格式
輸入共?n+1?行。
第一行包含用空格分隔的三個整數?n、X?和?Y,表示檢測點總數和市民所在位置。
第二行到第?n+1?行依次輸入?n?個檢測點的坐標。第?i+1?行(1≤i≤n)包含用空格分隔的兩個整數?xi?和?yi,表示?i?號檢測點所在位置。
輸出格式
輸出共三行,按距離從近到遠,依次輸出距離該市民最近的三個檢測點編號。
樣例輸入1
3 2 2 2 2 2 3 2 4Data
樣例輸出1
1 2 3Data
樣例輸入2
5 0 1 -1 0 0 0 1 0 0 2 -1 2Data
樣例輸出2
2 4 1題目鏈接
計算機軟件能力認證考試系統http://118.190.20.162/view.page?gpid=T113
#include<stdio.h> #include<math.h>int main(){int n=0, x =0,y = 0;scanf("%d %d %d", &n, &x, &y);int arr[n][2];int value[n][2];for (int i = 0; i < n; i++){scanf("%d %d", &arr[i][0],&arr[i][1]);}for (int i = 0; i < n;i++){// 計算后的數存放在二維數組中// 二維數組第一個元素代表 長度;第二個元素代表原始坐標value[i][0] = pow(x - arr[i][0], 2) + pow(y - arr[i][1], 2);value[i][1] = i+1;}int temp[2];// 根據二維數組的第一個元素對其進行排序// 選擇排序for (int i = 0; i < 3; i++){int min = value[i][0];int minIndex = value[i][1];int k = i;for (int j = i + 1; j < n; j++){if(value[j][0]<min){min = value[j][0];minIndex = value[j][1];k = j;}}temp[0] = value[i][0];temp[1] = value[i][1];value[i][0] = min;value[i][1] = minIndex;value[k][0] = temp[0];value[k][1] = temp[1];}for (int i = 0; i < 3;i++){printf("%d\n",value[i][1]);}return 0; }總結
以上是生活随笔為你收集整理的【CCF - 202009-1】称检测点查询 c语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1483):在vue发送网络请
- 下一篇: Unity3D数字孪生笔记——Unity