#include "aplusb.h"
#include <bits/stdc++.h>
#define all(v) (v).begin(), (v).end()
using namespace std;
using ll = int;
const ll MEM = 1e5 + 4;
vector<int> smallest_sums(int N, std::vector<int> A, std::vector<int> B)
{
ll l = 0, r = 2e9 + 7;
ll n = N;
while (l <= r)
{
ll mid = l + r >> 1;
ll o = 0;
for (int i = 0; i < n; i++)
{
if (A[i] + B[0] > mid)
break;
ll p = upper_bound(all(B), mid - A[i]) - B.begin();
o += p;
}
if (o >= n)
r = mid - 1;
else
l = mid + 1;
}
vector<ll> ans;
r = 0;
for (int i = 0; i < n; i++)
{
ll p = upper_bound(all(B), l - A[i] - 1) - B.begin();
for (int j = 0; j < p; j++)
{
ans.push_back(A[i] + B[j]);
r++;
}
}
sort(all(ans));
for (int i = r; i < n; i++)
ans.push_back(l);
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |