#include <bits/stdc++.h>
#define ll long long
#define S second
#define F first
#define Ft front()
#define T pair<string, pair<int, int>>
using namespace std;
ll gcd(ll a, ll b){
if(b==1)
return a;
else
return gcd(b , a%b);
}
ll lcm(ll a, ll b){
return (a*b)/(gcd(a,b));
}
ll binpow(ll a, ll b, ll MOD){
if(b==0)
return 1;
ll ans= binpow(a, b/2, MOD);
if(b%2==0)
return (ans*ans) % MOD;
else
return (((ans*ans)%MOD) * (a%MOD) % MOD);
}
int main(){
int n;
cin>>n;
vector<pair<int, int>> a (n+2);
vector<int> b (n+1, 0);
for(int i=1;i<=n+1;i++){
int x;
cin>>x;
a[i]={x, i};
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
stable_sort(a.begin(), a.end());
stable_sort(b.begin(), b.end());
vector<int> difa(n+2, 0);
vector<int> difb(n+2, 0);
for(int i=1;i<=n;i++){
difa[i]=max(max(a[i].F-b[i], 0), difa[i-1]);
}
for(int i=n;i>=1;i--){
difb[i]=max(max(a[i+1].F-b[i], 0), difb[i+1]);
}
vector<int> ans(n+2);
for(int i=1;i<=n+1;i++){
ans[a[i].S]=max(difb[i], difa[i-1]);
}
for(int i=1;i<=n+1;i++){
cout<<ans[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... |