Submission #704000

#TimeUsernameProblemLanguageResultExecution timeMemory
704000KenIsGeniusJust Long Neckties (JOI20_ho_t1)C++17
100 / 100
142 ms17112 KiB
#include <bits/stdc++.h> #define F first #define S second #define pb push_back #define all(x) (x).begin(), (x).end() #define int long long using namespace std; #ifdef LOCAL #define WOSAOJI freopen("in.txt", "r", stdin); #else #define WOSAOJI ios_base::sync_with_stdio(0), cin.tie(0); #endif #define chmax(a, b) (a) = (a) > (b) ? (a) : (b) #define chmin(a, b) (a) = (a) < (b) ? (a) : (b) const int MAXN = 2e5 + 5; int n; int a[MAXN], b[MAXN], c[MAXN]; int st1[MAXN], st2[MAXN]; int pre[MAXN], suf[MAXN]; signed main() { WOSAOJI cin >> n; for (int i = 0; i <= n; i++) cin >> a[i], b[i] = a[i]; for (int i = 0; i < n; i++) cin >> c[i]; sort(b, b + 1 + n); sort(c, c + n); for (int i = 0; i < n; i++) { st1[i] = max(-c[i] + b[i], 0ll); st2[i] = max(-c[i] + b[i + 1], 0ll); } pre[0] = st1[0]; for (int i = 1; i <= n; i++) pre[i] = max(pre[i - 1], st1[i]); suf[n - 1] = st2[n - 1]; for (int i = n - 2; i >= 0; i--) suf[i] = max(suf[i + 1], st2[i]); for (int i = 0; i <= n; i++) { int it = upper_bound(b, b + n + 1, a[i] - 1) - b; int ans = suf[it]; if (it != 0) chmax(ans, pre[it - 1]); cout << ans << " \n"[i == n]; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...