Submission #1318034

#TimeUsernameProblemLanguageResultExecution timeMemory
1318034kawhietGlobal Warming (CEOI18_glo)C++20
52 / 100
2095 ms13496 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, x; cin >> n >> x; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } vector<array<int, 2>> l(n), r(n); set<int> s; for (int i = 0; i < n; i++) { auto it = s.lower_bound(a[i]); if (it != s.end()) { s.erase(it); } s.insert(a[i]); l[i][0] = s.size(); l[i][1] = *s.rbegin(); } set<int> t; for (int i = n - 1; i >= 0; i--) { auto it = t.lower_bound(-a[i]); if (it != t.end()) { t.erase(it); } t.insert(-a[i]); r[i][0] = t.size(); r[i][1] = -*t.rbegin(); } int ans = s.size(); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (l[i][1] - r[j][1] < x) { ans = max(ans, l[i][0] + r[j][0]); break; } } } cout << ans << '\n'; 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...