(序列合并) 有两个长度为 的单调不降序列 和 ,序列的每个元素都是小于 的非负整数。在 和 中各取一个数相加可以得到 个和,求其中第 小的和。上述参数满足 和 。
#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 = ___①___; while (l < r) { int mid = (l+r)>>1; if (___②___) { r = mid; } else { l = mid + 1; } } return ___③___;} 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 = ___④___; while (l < r) { int mid = ((long long)l+r)>>1; if (___⑤___) { 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;} ① 处应填( )?
② 处应填( )?
③ 处应填( )?
④ 处应填( )?
⑤ 处应填( )?