1. 程式人生 > >EOJ(排序)——2890. 詢問隊員身高

EOJ(排序)——2890. 詢問隊員身高

2890. 詢問隊員身高

ECNU 籃球隊教練陳老師選拔了一批籃球隊員。對於籃球運動,隊員身高是重要因素之一,陳老師的記憶力不好,他經常會向助理教練詢問身高第 i 高的人是誰。助理教練不勝其煩,想請你幫忙寫個程式回答陳老師的詢問。
備註:每個隊員的身高都各不相同。

輸入

第一行是一個整數 t,表示測試資料組數。
對於每組測試資料:
第一行是兩個整數 n,m (1≤n≤50,1≤m≤50),n 表示隊員的人數,m 表示詢問的次數
第二行有 n 個整數,a1,a2,a3,…,an,依次為第 1 個到第 n 個隊員的身高 (1≤i≤n,170≤ai≤230)。
第三行有 m 個整數,b1,b2,b3,…,bm,bj 表示教練陳老師的第 j 個詢問,詢問身高第 bj 高的隊員編號 (1≤j≤m,1≤bj≤n)

輸出

每組測試資料輸出一行,每行輸出 m 個整數,依次表示所求隊員的編號。兩個整數之間用一個空格分開,每行的最後有一個換行符。
樣例

input

2
3 1
228 205 190
3
5 3
223 179 217 195 193
3 4 5

output

3
4 5 2

題目大意

給出隊員身高資訊,做出查詢。

題目解析:

結構體排序。

具體程式碼:

#include<iostream>
#include<algorithm>
using namespace std;
struct node{
	int id;
	int h;
}A[100]; bool cmp(node x,node y){ return x.h>y.h; } int main() { int T,n,m; cin>>T; while(T--){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>A[i].h; A[i].id=i; } sort(A+1,A+n+1,cmp); while(m--){ int k; cin>>k; cout<<
A[k].id<<" "; } cout<<endl; } return 0; }