Submission #1271670

#TimeUsernameProblemLanguageResultExecution timeMemory
1271670cmiucJust Long Neckties (JOI20_ho_t1)C++20
100 / 100
176 ms7216 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
const int N = 2e5 + 10;
int Ans[N], b[N], pre[N], suf[N];

int main(){
	int n;
	cin>>n;

	vector<pair<int,int>> a;
	for (int i=1, A;i<=n+1;i++){
		cin>>A;
		a.push_back({A, i});
	}
	sort(begin(a), end(a));

	for (int i=1;i<=n;i++)
		cin>>b[i];
	sort(b + 1, b + n + 1);

	for (int i=n+1;i>=2;i--)
		suf[i] = max(suf[i+1], a[i-1].first - b[i - 1]);

	for (int i=1;i<=n+1;i++){
		pre[i] = max(pre[i-1], a[i-1].first - b[i]);
		Ans[a[i-1].second] = max(pre[i-1], suf[i+1]);
	}
	for (int i=1;i<=n+1;i++)
		cout<<Ans[i]<<' ';
	cout<<'\n';

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...