Submission #1325882

#TimeUsernameProblemLanguageResultExecution timeMemory
1325882tkm_algorithmsJust Long Neckties (JOI20_ho_t1)C++20
100 / 100
69 ms10228 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
#define int ll
using P = pair<int, int>;
#define all(x) x.begin(), x.end()
#define rep(i, l, n) for (int i = l; i < (n); ++i)
#define sz(x) (int)x.size()
const char nl = '\n';
const int mod = 998244353;

int id = 0;

void solve() {
	int n; cin >> n;
	vector<P> a(n+1); vector<int> b(n);
	for (auto &i: a) {
		cin >> i.first;
		i.second = id++;
	}
	for (auto &i: b)cin >> i;
	
	sort(all(b));
	sort(all(a));
	
	vector<int> s(n);
	rep(i, 0, n)
		s[i] = a[i+1].first-b[i];
	for (int i = n-2; i >= 0; --i)s[i] = max(s[i], s[i+1]);
	
	vector<int> res(n+1);
	int mx = 0;
	rep(i, 0, n) {
		res[a[i].second] = max(mx, s[i]);
		mx = max(mx, a[i].first-b[i]);
	}
	
	res[a.back().second] = mx;
	for (auto i: res)cout << i << " ";
}

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...