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>
#define int long long
#define ms(v) memset(v, -1, sizeof v)
#define pb push_back
#define mp make_pair
#define ll long long int
#define pi pair <int,int>
#define itn int
#define fr first
#define sc second
#define srt(v) sort(v.begin(), v.end())
#define rvs(v) reverse(v.begin(), v.end())
#define mod 1000000007
#define INF 1e18
#define N 200010
using namespace std;
int n;
vector <pi> a;
vector <pi> b;
int pref[N], suf[N];
int32_t main(){
ios::sync_with_stdio(false); cin.tie(0);
cin >> n;
for(int i = 1;i <= n+1;i++){
int x;
cin >> x;
a.pb({x, i});
}
for(int i = 1;i <= n;i++){
int x;
cin >> x;
b.pb({x, i});
}
srt(a);
srt(b);
for(int i = 1;i <= n;i++){
pref[i] = max(pref[i-1], a[i-1].fr - b[i-1].fr);
}
for(int i = n+1;i > 1;i--){
suf[i] = max(suf[i+1], a[i-1].fr - b[i-2].fr);
}
vector <pi> res;
for(int i = 0;i <= n;i++){
int pos = a[i].sc;
int val = max(pref[a[i].sc-1], suf[a[i].sc+1]);
res.pb({pos, val});
}
srt(res);
for(int i = 0;i <= n;i++){
cout << res[i].sc << " ";
}
// cout << "\n";
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... |