#include <bits/stdc++.h>
#include <climits>
using namespace std;
#define f first
#define s second
#define all(a) a.begin(),a.end()
#define sz(a) (int)a.size()
#define int long long
const int N=2e5+5;
pair<int,int> A[N];
int B[N];
int suf_dif[N],pre_dif[N];
int ans[N];
int n;
void solve(){
cin>>n;
for(int i=1;i<=n+1;++i){
cin>>A[i].f;
A[i].s=i;
}
for(int i=1;i<=n;++i) cin>>B[i];
sort(A+1,A+n+2);
sort(B+1,B+n+1);
for(int i=1;i<=n;++i) pre_dif[i]=max(A[i].f-B[i],0ll);
for(int i=1;i<=n+1;++i) suf_dif[i]=max(A[i].f-B[i-1],0ll);
//for(int i=1;i<=n+1;++i) cout<<suf_dif[i]<<' ';cout<<'\n';
//for(int i=1;i<=n;++i) cout<<pre_dif[i]<<' ';cout<<'\n';
for(int i=1;i<=n;++i) pre_dif[i]=max(pre_dif[i],pre_dif[i-1]);
for(int i=n+1;i>=1;--i) suf_dif[i]=max(suf_dif[i],suf_dif[i+1]);
for(int i=1;i<=n+1;++i){
ans[A[i].s]=max(pre_dif[i-1],suf_dif[i+1]);
}
for(int i=1;i<=n+1;++i) cout<<ans[i]<<' ';
}
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int T=1;
while(T--) solve();
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |