Submission #364781

#TimeUsernameProblemLanguageResultExecution timeMemory
364781RainbowbunnyJust Long Neckties (JOI20_ho_t1)C++17
100 / 100
128 ms10860 KiB
#include <iostream>
#include <algorithm>

int n;
int prefix[200005], suffix[200005], ans[200005];
std::pair <int, int> a[200005];
int b[200005];

int main()
{
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	std::cin >> n;
	for(int i = 1; i <= n + 1; i++)
	{
		std::cin >> a[i].first;
		a[i].second = i;
	}
	std::sort(a + 1, a + n + 2);
	for(int i = 1; i <= n; i++)
	{
		std::cin >> b[i];
	}
	std::sort(b + 1, b + n + 1);
	for(int i = 1; i <= n; i++)
	{
		prefix[i] = std::max(prefix[i - 1], a[i].first - b[i]);
	}
	for(int i = n + 1; i >= 2; i--)
	{
		suffix[i] = std::max(suffix[i + 1], a[i].first - b[i - 1]);
	}
	for(int i = 1; i <= n + 1; i++)
	{
		ans[a[i].second] = std::max(prefix[i - 1], suffix[i + 1]);
	}
	for(int i = 1; i <= n + 1; i++)
	{
		std::cout << ans[i] << ' ';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...