給定乙個按照公升序排列的長度為n的整數陣列,以及 q 個查詢。
對於每個查詢,返回乙個元素k的起始位置和終止位置(位置從0開始計數)。
如果陣列中不存在該元素,則返回「-1 -1」。
輸入格式
第一行包含整數n和q,表示陣列長度和詢問個數。
第二行包含n個整數(均在1~10000範圍內),表示完整陣列。
接下來q行,每行包含乙個整數k,表示乙個詢問元素。
輸出格式
共q行,每行包含兩個整數,表示所求元素的起始位置和終止位置。
如果陣列中不存在該元素,則返回「-1 -1」。
資料範圍
1≤n≤100000
1≤q≤10000
1≤k≤10000
輸入樣例:
6 31 2 2 3 3 434
5輸出樣例:
3 45 5
-1 -1
注意:求第乙個出現和最後乙個出現的值得二分的不同
#include
using namespace std;
int n,q,k;
int a[
100005];
intmain()
for(
int i =
0; i < q; i++
)else
}//cout << "l = " << l << " r = " << r << endl;
if(a[l]
!= t)
else
cout << l << endl;}}
return0;
}/*6 31 2 2 3 3 434
5*/
數的範圍 二分
題目描述 給定乙個按照公升序排列的長度為n的整數陣列,以及 q 個查詢。對於每個查詢,返回乙個元素k的起始位置和終止位置 位置從0開始計數 如果陣列中不存在該元素,則返回 1 1 輸入格式 第一行包含整數n和q,表示陣列長度和詢問個數。第二行包含n個整數 均在1 1000010000範圍內 表示完整...
數的範圍 整數二分
給定乙個按照公升序排列的長度為n的整數陣列,以及 q 個查詢。對於每個查詢,返回乙個元素k的起始位置和終止位置 位置從0開始計數 如果陣列中不存在該元素,則返回 1 1 輸入格式 第一行包含整數n和q,表示陣列長度和詢問個數。第二行包含n個整數 均在1 10000範圍內 表示完整陣列。接下來q行,每...
典型二分問題 數的範圍
題目描述 給定乙個按照公升序排列的長度為n的整數陣列,以及 q 個查詢。對於每個查詢,返回乙個元素k的起始位置和終止位置 位置從0開始計數 如果陣列中不存在該元素,則返回 1 1 輸入格式 第一行包含整數n和q,表示陣列長度和詢問個數。第二行包含n個整數 均在1 10000範圍內 表示完整陣列。接下...