Submission #365261

#TimeUsernameProblemLanguageResultExecution timeMemory
365261AdOjis485Just Long Neckties (JOI20_ho_t1)C++17
100 / 100
277 ms17900 KiB
#include <iostream> #include <vector> #include <algorithm> #define int int64_t using namespace std; signed main() { int n; cin >> n; vector<pair<int, int>> a(n + 1); vector<pair<int, int>> b(n); for(int i = 0; i <= n; i ++) { cin >> a[i].first; a[i].second = i; } for(int i = 0; i < n; i ++) { cin >> b[i].first; b[i].second = i; } sort(a.begin(), a.end()); sort(b.begin(), b.end()); vector<int> cl(n); vector<int> cr(n); for(int i = 0; i < n; i ++) { cl[i] = max(int(0), a[i].first - b[i].first); cr[i] = max(int(0), a[i + 1].first - b[i].first); } vector<int> ml(n + 1); vector<int> mr(n + 1); int mlval = 0; int mrval = 0; for(int i = 1; i <= n; i ++) { mlval = max(mlval, cl[i - 1]); ml[i] = mlval; } for(int i = n - 1; i >= 0; i --) { mrval = max(mrval, cr[i]); mr[i] = mrval; } vector<int> ans0(n + 1); for(int i = 0; i <= n; i ++) ans0[i] = max(ml[i], mr[i]); vector<int> ans(n + 1); for(int i = 0; i <= n; i ++) ans[a[i].second] = ans0[i]; for(int el : ans) cout << el << " "; cout << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...