Submission #520945

#TimeUsernameProblemLanguageResultExecution timeMemory
520945four_specksGlobal Warming (CEOI18_glo)C++17
100 / 100
50 ms6852 KiB
#include <bits/stdc++.h> using namespace std; inline namespace { } // namespace void solve() { int n; long x; cin >> n >> x; vector<long> t(n); for (int i = 0; i < n; i++) cin >> t[i]; vector<long> lis, lds; vector<int> dp(n, 0); for (int i = n - 1; i >= 0; i--) { auto it = lower_bound(lds.begin(), lds.end(), -t[i]); dp[i] = (int)(it - lds.begin()) + 1; if (it == lds.end()) lds.push_back(-t[i]); else *it = -t[i]; } int len = 0; for (int i = 0; i < n; i++) { len = max(len, dp[i] + (int)(lower_bound(lis.begin(), lis.end(), t[i] + x) - lis.begin())); auto it = lower_bound(lis.begin(), lis.end(), t[i]); if (it == lis.end()) lis.push_back(t[i]); else *it = t[i]; } cout << len << '\n'; } int main() { ios_base::sync_with_stdio(false), cin.tie(NULL); solve(); 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...