Submission #1179870

#TimeUsernameProblemLanguageResultExecution timeMemory
1179870bbartekJust Long Neckties (JOI20_ho_t1)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
#define st first
#define nd second
#define pb push_back

const int maxn = 2e5+7;

int wynik[maxn];
int pref[maxn];

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n,a;
    cin>>n;

    vector<pair<int,int>> v1;
    vector<int> v2;

    for(int i=1;i<=n+1;i++){
        cin>>a;
        v1.pb({a,i});
    }
    sort(v1.begin(),v1.end());

    for(int i=1;i<=n;i++){
        cin>>a;
        v2.pb(a);
    }

    sort(v2.begin(),v2.end());

    pref[0] = abs(v1[0].st - v2[0]);
    for(int i=1;i<n;i++){
        pref[i] = pref[i-1];
        pref[i] = max(pref[i],abs(v1[i].st-v2[i]));
    }

    wynik[v1[n].nd] = pref[n-1];

    int suf = 0,akt;

    for(int i=n-1;i>=0;i--){
        akt = abs(v1[i+1].st - v2[i]);
        suf = max(suf,akt);
        wynik[v1[i].nd] = suf;
        if(i != 0){
            wynik[v1[i].nd] = max(suf,pref[i-1]);
        }
    }

    for(int i=1;i<=n+1;i++){
        cout<<wynik[i]<<" ";
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...