Submission #1323697

#TimeUsernameProblemLanguageResultExecution timeMemory
1323697hyyhJust Long Neckties (JOI20_ho_t1)C++20
100 / 100
174 ms7696 KiB
#include <iostream>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <iomanip>
#include <set>
#include <bitset>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;
#define endl '\n'
#define f first
#define s second

int main(){
    int n;cin >> n;
    vector<pii> vc;
    vector<int> init;
    for(int i{};i <= n;i++){
        int g;cin >> g;
        vc.emplace_back(g,i);
    }
    for(int i{};i < n;i++){
        int g;cin >> g;
        init.emplace_back(g);
    }
    sort(vc.begin(),vc.end());
    sort(init.begin(),init.end());
    vector<int> pref = {0};
    vector<int> suf = {0};
    for(int i{};i < n;i++){
        pref.emplace_back(max(pref.back(),vc[i].f-init[i]));
    }
    for(int i{n};i > 0;i--){
        suf.emplace_back(max(suf.back(),vc[i].f-init[i-1]));
    }
    reverse(suf.begin(),suf.end());
    vector<int> hash(n+1);
    for(int i{0};i <= n;i++){
        hash[vc[i].s] = max(pref[i],suf[i]);
    }
    for(auto k:hash) cout << k << " ";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...