拉成績線


提交程序

分数: 100 (部分)
时间限制: 0.1s
内存限制: 256M

作者:
题目类型

Kevin凱文是大同高中裡的榮譽教師,生為班導的他,最喜歡在段考後從班上一堆考爛的同學裡挑人當值日生。

挑人當值日生的標準很簡單,就是「拉成績線」!凱文會將班上 \(N\) 個人所有人第一次段考的成績由小排到大,再來每次挑值日生時,每次他會隨機抽一個整數 \(k\) ,班上同學分數最接近 \(k\) 且成績大於等於 \(k\) 的那位同學就是這次挑出的值日生。

舉例來說,假設班上有 \(5\) 個同學的成績分別為 \(23, 55, 60, 77, 100\),如果 \(k=60\) ,則第 \(3\) 位同學就是這次的值日生。又如果 \(k=40\),因為第 \(2\) 位同學的成績\(55\geq k=40\)且又最靠近 \(k\) ,所以第 \(2\) 位同學為這次的值日生。

因為Kevin班上實在太多學生了,於是他想拜託你幫他找出接下來 \(M\) 次的值日生。

輸入說明

輸入第一行有兩個整數 \(N,M\),表示班上的人數和凱文拜託你的次數。
接下來一行會有會有 \(N\) 個整數,由前數來第 \(i\) 個數表示班上第 \(i\) 位同學的成績\(a_i\),
接下來會有 \(M\) 行,每行有一個整數 \(k\) ,表示凱文這次決定的 \(k\) 。

  • \(1\leq N \leq 10^6\)
  • \(1\leq M \leq 10^3\)
  • \(1\leq a_i \leq 10^7\)
  • \(1\leq k \leq 10^6\)
  • 保證一定會有同學當值日生
  • 保證班上同學的成績不會重複

輸出說明

請輸出 \(M\) 個整數,表示每次凱文給你 \(k\) 後,第幾位同學會變為值日生

範例輸入

5 2
23 55 60 77 100 
60
40

範例輸出

3
2

子題

#No. 額外限制 分數
1 保證 \(N=5\) 40
2 無其他限制 60

评论

目前没有评论。