제출 #1192232

#제출 시각아이디문제언어결과실행 시간메모리
1192232SnowRaven52Global Warming (CEOI18_glo)C++20
100 / 100
70 ms3400 KiB
#include <bits/stdc++.h> using namespace std; int t[200005], l[200005]; int main() { // freopen("main.in", "r", stdin); // freopen(".out", "w", stdout); int n, x; cin >> n >> x; for (int i = 0; i < n; i++) cin >> t[i]; vector<int> dp(n, INT_MAX); int longest = 0; for (int i = 0; i < n; i++) { int j = lower_bound(dp.begin(), dp.end(), t[i]) - dp.begin(); dp[j] = t[i], l[i] = j + 1; longest = max(longest, l[i]); } dp = vector<int>(n, INT_MAX); for (int i = n - 1; i >= 0; i--) { int pos = lower_bound(dp.begin(), dp.end(), -t[i] + x) - dp.begin(); int insert_pos = lower_bound(dp.begin(), dp.end(), -t[i]) - dp.begin(); dp[insert_pos] = -t[i]; longest = max(longest, l[i] + pos); } cout << longest << endl; }
#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...