Submission #1164119

#TimeUsernameProblemLanguageResultExecution timeMemory
1164119canhnam357Global Warming (CEOI18_glo)C++20
100 / 100
43 ms3532 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() void ckmax(int& f, int s) { f = (f > s ? f : s); } void ckmin(int& f, int s) { f = (f < s ? f : s); } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, x; cin >> n >> x; vector<int> a(n); for (int& i : a) cin >> i; vector<int> lis(n, INT_MAX); vector<int> pre(n); for (int i = 0; i < n; i++) { auto it = lower_bound(all(lis), a[i]); pre[i] = it - lis.begin() + 1; *it = a[i]; } lis = vector<int>(n, INT_MAX); int ans = *max_element(all(pre)); for (int i = n - 1; i >= 0; i--) { auto it = lower_bound(all(lis), -a[i] + x); ans = max(ans, (int)(it - lis.begin() + pre[i])); it = lower_bound(all(lis), -a[i]); *it = -a[i]; } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...