【CCF - 202009-1】称检测点查询 c语言
題目背景
2020 年 6 月 8 日,國(guó)務(wù)院聯(lián)防聯(lián)控機(jī)制發(fā)布《關(guān)于加快推進(jìn)新冠病毒核酸檢測(cè)的實(shí)施意見》,提出對(duì)“密切接觸者”等八類重點(diǎn)人群“應(yīng)檢盡檢”,其他人群“愿檢盡檢”。
問(wèn)題描述
某市設(shè)有?n?個(gè)核酸檢測(cè)點(diǎn),編號(hào)從?1?到?n,其中?i?號(hào)檢測(cè)點(diǎn)的位置可以表示為一個(gè)平面整數(shù)坐標(biāo)?(xi,yi)。
為方便預(yù)約核酸檢測(cè),請(qǐng)根據(jù)市民所在位置?(X,Y),查詢距其最近的三個(gè)檢測(cè)點(diǎn)。
多個(gè)檢測(cè)點(diǎn)距離相同時(shí),編號(hào)較小的視為更近。
輸入格式
輸入共?n+1?行。
第一行包含用空格分隔的三個(gè)整數(shù)?n、X?和?Y,表示檢測(cè)點(diǎn)總數(shù)和市民所在位置。
第二行到第?n+1?行依次輸入?n?個(gè)檢測(cè)點(diǎn)的坐標(biāo)。第?i+1?行(1≤i≤n)包含用空格分隔的兩個(gè)整數(shù)?xi?和?yi,表示?i?號(hào)檢測(cè)點(diǎn)所在位置。
輸出格式
輸出共三行,按距離從近到遠(yuǎn),依次輸出距離該市民最近的三個(gè)檢測(cè)點(diǎn)編號(hào)。
樣例輸入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題目鏈接
計(jì)算機(jī)軟件能力認(rèn)證考試系統(tǒng)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++){// 計(jì)算后的數(shù)存放在二維數(shù)組中// 二維數(shù)組第一個(gè)元素代表 長(zhǎng)度;第二個(gè)元素代表原始坐標(biāo)value[i][0] = pow(x - arr[i][0], 2) + pow(y - arr[i][1], 2);value[i][1] = i+1;}int temp[2];// 根據(jù)二維數(shù)組的第一個(gè)元素對(duì)其進(jìn)行排序// 選擇排序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; }總結(jié)
以上是生活随笔為你收集整理的【CCF - 202009-1】称检测点查询 c语言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端学习(1483):在vue发送网络请
- 下一篇: Unity3D数字孪生笔记——Unity