Submission #1315438

#TimeUsernameProblemLanguageResultExecution timeMemory
1315438bahaktlJust Long Neckties (JOI20_ho_t1)C++20
100 / 100
71 ms11612 KiB
#include <bits/stdc++.h>

#define int long long 
#define pb push_back
using namespace std;

const int N=1e6+10;
const int inf=8e18;
const int mod=1e9+7;

pair<int,int> a[N],b[N];
int s[N];

signed main() {
    ios_base::sync_with_stdio(NULL);
    cin.tie(NULL);
    int T=1;
    // cin>>T;
    while(T--) {
        int n;
        cin>>n;
        for(int i=1;i<=n+1;i++) {
            cin>>a[i].first;
            a[i].second=i;
        }
        for(int i=1;i<=n;i++) {
            cin>>b[i].first;
            b[i].second=i;
        }
        sort(a+1,a+n+2);
        sort(b+1,b+n+1);
        vector<int>ans(n+2);
        int mx=0;
        for(int i=n;i>=1;i--) {
            s[i]=max(s[i+1],max(a[i+1].first-b[i].first,0LL));
        }
        for(int k=1;k<=n;k++) {
            ans[a[k].second]=max(mx,s[k]);
            mx=max(mx,a[k].first-b[k].first);
        }
        //cout<<s[2]<<'\n';
        ans[a[n+1].second]=mx;
        for(int i=1;i<ans.size();i++) cout<<ans[i]<<' ';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...