Submission #1314558

#TimeUsernameProblemLanguageResultExecution timeMemory
1314558vedchoudharyJust Long Neckties (JOI20_ho_t1)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("O3")

using namespace std;

using ll = long long;
#define int ll
#define ff first
#define ss second

struct Emp {
    int v,cl,ch,cli,chi,clc,chc;
    Emp(){}
    Emp(int _v, int _cl, int _ch) : v(_v), cl(_cl), ch(_ch) {};
    Emp(int _v, pair<int,int> _cl, pair<int,int> _ch) {
        v = _v;
        cl = _cl.ff;
        cli = _cl.ss;
        ch = _ch.ff;
        chi = _ch.ss;
        clc = max(0LL,cl-v);
        chc = max(0LL,ch-v);
    };
};

signed main() {
    int n; cin >> n;
    vector<pair<int,int>> a(n+1); for(int i = 0; i < n+1; i++) cin >> a[i].first;
    vector<int> b(n); for(int i = 0; i < n; i++) cin >> b[i];
    for(int i = 0; i < n+1; i++) a[i].second = i;
    sort(a.begin(),a.end());
    sort(b.begin(),b.end());
    vector<Emp> e(n);
    for(int i = 0; i < n; i++) {
        e[i] = Emp(b[i],a[i],a[i+1]);
    }
    map<int,int> dc;
    for(int i = 0; i < n; i++) {
        dc[e[i].chc]++;
    }
    for(int i = 0; i < n; i++) {
        cout << dc.rbegin()->first << " ";
        dc[e[i].chc]--;
        if(dc[e[i].chc]==0) dc.erase(e[i].chc);
        dc[e[i].clc]++;
    }
    cout << dc.rbegin()->first << " ";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...