不是VIP会员,不能显示答案

题目解答

题目:
(1)合并序列,有两个长度为N 的单调不降序列A 和B,序列的每个元素都是小于10^9

的非负整数。在A 和B 中各取一个数相加可以得到N^2 个和,求其中第k 小的和。上述参

数满足N<=10^5 和1<=K<=N^2

#include <iostream>

using namespace std;



const int maxn = 100005;

int n;

long long k;

int a[maxn], b[maxn];



int *upper_bound(int *a, int *an, int ai) {

int l = 0, r = __(1)__ ;

while (l < r) {

int mid = (l + r) >> 1;

if ( __(2)__ ) {

r = mid;

} else {

l = mid + 1;

}

}

return __(3)__;

}



long long get_rank(int sum) {

long long rank = 0;

for (int i = 0; i < n; i++) {

rank += upper_bound(b, b + n, sum - a[i]) - b;

}

return rank;

}

int solve() {

int l = 0, r = __(4)__ ;

while (l < r) {

int mid = ((long long)l + r) >> 1;

if ( __(5)__ ) {

l = mid + 1;

} else {

r = mid;

}

}

return l;

}



int main() {

cin >> n >> k;

for (int i = 0; i < n; i++)

cin >> a[i];

for (int i = 0; i < n; i++)

cin >> b[i];

cout << solve() << endl;

return 0;

}




选择题

1) ⑴处应填( )。

2) ⑵处应填( )。

3) ⑶处应填( )。

4) ⑷处应填( )。

5) ⑸处应填( )。
考点:
分析:
解答:
评论:
老师: