제출 #1270924

#제출 시각아이디문제언어결과실행 시간메모리
1270924kustov_vadim_533Just Long Neckties (JOI20_ho_t1)C++20
100 / 100
65 ms6216 KiB
#include <bits/stdc++.h>
//#pragma GCC optimize("Ofast,O3,unroll-loops")
//#pragma GCC target("avx2")
	
using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

#define len(v) (int)((v).size())

inline void solve() {
	int n;
	cin >> n;

	vector<pair<int, int>> a(n + 1);
	for (int i = 0; i < n + 1; ++i){
		cin >> a[i].first;
		a[i].second = i;
	}

	vector<int> b(n);
	for (int i = 0; i < n; ++i){
		cin >> b[i];
	}

	sort(a.begin(), a.end());
	sort(b.begin(), b.end());

	vector<int> ans(n + 1);
	int mx = 0;
	for (int i = 0; i < n + 1; ++i){
		ans[i] = max(ans[i], mx);
		if (i < n) mx = max(mx, a[i].first - b[i]);
	}

	mx = 0;
	for (int i = n; i >= 0; --i){
		ans[i] = max(ans[i], mx);
		if (i > 0) mx = max(mx, a[i].first - b[i - 1]);
	}

	vector<int> answer(n + 1);
	for (int i = 0; i <= n; ++i){
		answer[a[i].second] = ans[i]; 
	}
	for (int i = 0; i <= n; ++i){
		cout << answer[i] << ' ';
	}
	cout << '\n';
}


signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	int t = 1;
//	cin >> t;
	while (t--) {
		solve();
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...