Submission #906277

#TimeUsernameProblemLanguageResultExecution timeMemory
906277OAleksaJust Long Neckties (JOI20_ho_t1)C++14
100 / 100
89 ms14088 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define f first
#define s second

signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int tt = 1;
  //cin >> tt;
  while (tt--) {
  	int n;
  	cin >> n;
  	vector<pair<int, int>> a(n + 1);
  	vector<int> b(n);
  	for (int i = 0;i < n + 1;i++)
  		cin >> a[i].f, a[i].s = i;
  	for (int i = 0;i < n;i++)
  		cin >> b[i];
  	sort(a.begin(), a.end());
  	sort(b.begin(), b.end());
  	vector<int> s(n + 2);
  	s[n] = max(a[n].f - b[n - 1], 0ll);
  	for (int i = n - 1;i >= 1;i--)
  		s[i] = max(s[i + 1], max(a[i].f - b[i - 1], 0ll));
  	vector<int> ans(n + 1);
  	int mx = 0;
  	for (int i = 0;i < n + 1;i++) {
  		ans[a[i].s] = max(mx, s[i + 1]);
  		if (i < n)
  			mx = max(mx, max(a[i].f - b[i], 0ll));
  	}
  	for (int i = 0;i < n + 1;i++)
  		cout << ans[i] << ' ';
	}
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...