Submission #1314560

#TimeUsernameProblemLanguageResultExecution timeMemory
1314560vedchoudharyJust Long Neckties (JOI20_ho_t1)C++20
100 / 100
282 ms31032 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; vector<int> ans(n+1); for(int i = 0; i < n; i++) { dc[e[i].chc]++; } for(int i = 0; i < n; i++) { ans[e[i].cli] = dc.rbegin()->first; dc[e[i].chc]--; if(dc[e[i].chc]==0) dc.erase(e[i].chc); dc[e[i].clc]++; } ans[e[n-1].chi] = dc.rbegin()->first; for(int i : ans) cout << i << " "; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...