題目描述:輸入n
個數,m
次查詢。
每次查詢給出乙個數x。
要求:每次查詢輸出前
x個數中第
i小的數。(i為第
i次查詢)
你可以假設
m <= n
,xi <= xi+1 <= xi+2 <= ……. <= xm (xm <= n).
輸入line0:t
line1: n,m
line2…linen+1:num1,......,numn
linen+2…linen+2+m:x1,……,xm
n < 30000, num < 2000000000
在編碼過程中我的思路:
不得不說我把這道題給想複雜了,以為會非常的難,但其實認真思考,形成思路,實現起來也就不會很難。
使用c++程式設計的好處:它有很多可以現成呼叫的函式,比如sort函式,還可以控制排序的範圍,比如對於a陣列,我只要對前n個數進行排序,則就可以這樣進行呼叫:
sort(a,a+n,cmp) cmp用來指定是公升序還是降序。如果要公升序,則return ab
我的**:
#include using namespace std;
int n,m;//輸入的數字個數,進行的查詢次數
int t;//測試次數
int a[30010],b[50];
int cmp(int l,int h){
return l>t;
while(t--){
cin>>n>>m;
for(i=0;i>a[i];
for(i=0;i>b[i];
for(j=1;j<=m;j++){
sort(a,a+b[j-1],cmp);
cout<
ACM練習 最大最小值
時間限制 1000 ms 記憶體限制 65535 kb 描述 給出n個整數,執行m次詢問。對於每次詢問,首先輸入三個整數c l r 如果c等於1,輸出第l個數到第r個數之間的最小值 如果c等於2,輸出第l個數到第r個數之間的最大值 如果c等於3,輸出第l個數到第r個數之間的最小值與最大值的和。包括第...
資料結構之堆排序(最小堆)輸出最小值操作
輸入乙個長度為n的整數數列,從小到大輸出前m小的數。輸入格式 第一行包含整數n和m。第二行包含n個整數,表示整數數列。輸出格式 共一行,包含m個整數,表示整數數列中前m小的數。資料範圍 1 m n 105 1 數列中元素 109 輸入樣例 5 34 5 1 3 2 輸出樣例 1 2 3 includ...
ACM 1002 最大值和最小值
題目 給定n個整數 1 n 100 求出這n個數中的最大值,最小值。輸入 多組資料,第一行為乙個整數n,第二行為n個不超過100的正整數,用空格隔開。輸出 對每組資料輸出一行,包含兩個整數,用乙個空格隔開,分別表示n個數中的最大值和最小值 樣例輸入 54 6 7 3 1 44 3 5 1 樣例輸出 ...