Submission #1290668

#TimeUsernameProblemLanguageResultExecution timeMemory
1290668zagaroJust Long Neckties (JOI20_ho_t1)C++20
100 / 100
69 ms11596 KiB
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
/**zagaro & lauren <3**/
#define mod 1000000007 //1e9 + 7
#define pi acos(-1)
#define wl while
#define str string
#define ENDL "\n"
#define sal ' '
#define tp_set ll
#define prc(n) cout.precision(n);cout<<fixed;
#define ord_set tree<tp_set, null_type, less<tp_set>, rb_tree_tag, tree_order_statistics_node_update>
typedef long long ll;
typedef bool bl;
typedef char car;
using namespace std;
using namespace __gnu_pbds;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    ll n;
    cin>>n;
    vector<pair<ll,ll> > vec(n+2);
    vector<ll> res(n+2);
    vector<ll> vc(n+1);
    vector<ll> prf(n+1, 0);
    vector<ll> suf(n+2, 0);
    for(int i=1;i<=n+1;i++){
        cin>>vec[i].first;
        vec[i].second = i;
    }
    for(int i=1;i<=n;i++)cin>>vc[i];
    sort(vec.begin(), vec.end());
    sort(vc.begin(), vc.end());
    for(int i=1;i<=n;i++)prf[i] = max(prf[i-1], max(vec[i].first-vc[i], ll (0)));
    for(int i=n;i>=1;i--)suf[i] = max(suf[i+1], max(vec[i+1].first-vc[i], ll (0)));
    for(int i=1;i<=n+1;i++)res[vec[i].second] = max(prf[i-1], suf[i]);
    for(int i=1;i<=n+1;i++)cout<<res[i]<<sal;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...