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;
typedef long long ll;
const int N = 2e5;
int v[N + 1];
int p[N + 1];
ll sf[N + 1];
int v2[N];
ll ans[N + 1];
int main(){
int n;
cin>>n;
for(int i = 0;i < n + 1;i++){
cin>>v[i];
p[i] = i;
}
for(int i = 0;i < n;i++){
cin>>v2[i];
}
sort(p, p + n + 1,[&](int a,int b){
return v[a] < v[b];
});
sort(v2,v2 + n);
for(int i = n;i >= 1;i--){
sf[i] = max((i != n?sf[i + 1]:0ll),(ll)max(0,v[p[i]] - v2[i - 1]));
}
ll cur = 0;
for(int i = 0;i <= n;i++){
ans[p[i]] = max(cur,(i == n?0:sf[i + 1]));
//cout<<cur<<' '<<(i == n?0:sf[i + 1])<<' '<<p[i]<<'\n';
if(i != n)cur = max(cur,(ll)max(v[p[i]] - v2[i],0));
}
for(int i = 0;i <= n;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... |