乙個有 n 個整數的陣列 a,n是乙個奇數。
每次可以選擇陣列裡的乙個元素 aia_
ai 並把這個元素加上 1。
在至多 k
kk 次操作之後,陣列的中位數最大能變成多少。
輸入格式:
多組輸入
第一行兩個整數 n,k
(1≤n
≤2×1
05,1
≤k≤1
09
)n,k(1≤n≤2×10^5,1≤k≤10^9)
n,k(1≤
n≤2×
105,
1≤k≤
109)
。第二行 n
nn 和整數 a1,
a2,.
....
.,an
a_1,a_2,......,a_n
a1,a2
,..
....
,an
。輸出格式:
k
kk 次操作後陣列的中位數。
輸入樣例:
輸出樣例:3 2
1 3 5
5
解題思路
假設原陣列的中位數為a[mid]
則按照題目要求進行k
次操作後中位數應該在a[mid]
與a[mid]+k
之間,在這個區間內使用二分法便可以搜尋出滿足條件且最大的中位數。
避雷測試資料有多組
需使用long long型別
ac**
#include
#include
#define ll long long
using
namespace std;
/** * 中位數變為 mid 需要的操作次數
* @param arr 有序陣列
* @param len 陣列長度
* @param mid 預期中位數
* @return 操作次數(每次操作挑乙個元素加1)
*/ll time
(const ll *arr, ll len, ll mid)
return t;
}int
main()
cout << l-
1<< endl;
}return0;
}
7 4 中位數 10分
乙個有 n 個整數的陣列 a,n是乙個奇數。每次可以選擇陣列裡的乙個元素 a i 並把這個元素加上 1。在至多 k 次操作之後,陣列的中位數最大能變成多少。多組輸入 第一行兩個整數 n,k 1 n 2 10 5 1 k 10 9 第二行 n 和整數 a 1 a 2 a n k 次操作後陣列的中位數。...
PTA 7 4 解密英文藏頭詩 15分
pta 7 4 解密英文藏頭詩 15分 本題要求編寫乙個解密英文藏頭詩的程式。建議使用動態記憶體分配方法處理字串的輸入。輸入格式 輸入為一首英文藏頭詩,每句一行,小於20行,每行不超過80個字元,以 作為藏頭詩的輸入結束標誌。輸出格式 取出每句的第乙個字元,連線在一起形成乙個字串並輸出。輸出樣例 i...
PTA 7 4 列車排程 25 分
火車站的列車排程鐵軌的結構如下圖所示。兩端分別是一條入口 entrance 軌道和一條出口 exit 軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條...