제출 #1205196

#제출 시각아이디문제언어결과실행 시간메모리
1205196DJ035A Plus B (IOI23_aplusb)C++20
0 / 100
1096 ms328 KiB
#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, j = n - 1;
		for (int i = 0; i < n; i++)
		{
			for (; A[i] + B[j] > mid && j >= 0; j--)
				;
			o += j + 1;
		}
		if (o >= n)
			r = mid - 1;
		else
			l = mid + 1;
	}
	vector<ll> ans;
	r = 0;
	ll j = n - 1;
	for (int i = 0; i < n; i++)
	{
		for (; A[i] + B[j] >= l && j >= 0; j--)
			;
		for (int k = 0; k <= j; k++)
		{
			ans.push_back(A[i] + B[k]);
			r++;
		}
	}

	sort(all(ans));
	for (int i = r; i < n; i++)
		ans.push_back(l);
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...