This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
pair<int, int> A[200005];
int B[200005];
int M1[200005];
int M2[200005];
int pref[200005];
int suf[200005];
int res[200005];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for(int i = 0; i <= n; i++){
cin >> A[i].first;
A[i].second = i;
}
for(int i = 0; i < n; i++) cin >> B[i];
sort(B, B+n);
sort(A, A+n+1);
for(int i = 0; i < n; i++) {
M1[i] = max(0, A[i].first - B[i]);
M2[i] = max(0, A[i+1].first - B[i]);
//cout << M1[i] << " " << M2[i] << '\n';
}
pref[0] = M1[0];
for(int i = 1; i < n; i++) {
pref[i] = max(pref[i-1], M1[i]);
//cout << pref[i] << " ";
}
//cout << '\n';
for(int i = n-1; i >= 0; i--) {
suf[i] = max(suf[i+1], M2[i]);
//cout << suf[i] << " ";
}
//cout << '\n';
res[A[n].second] = pref[n-1];
res[A[0].second] = suf[0];
for(int i = 1; i < n; i++){
res[A[i].second] = max(pref[i-1], suf[i]);
}
for(int i = 0; i <= n; i++) cout << res[i] << " ";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |