제출 #159810

#제출 시각아이디문제언어결과실행 시간메모리
159810DS007Global Warming (CEOI18_glo)C++17
0 / 100
80 ms5496 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, x; cin >> n >> x; int t[n]; for (int i = 0; i < n; i++) cin >> t[i]; int lis1[n + 1]; fill(lis1, lis1 + n + 1, 2e9); lis1[0] = -1; int len[n]; memset(len, 0, sizeof(len)); int temp = 0; for (int i = 0; i < n; i++) { auto it = upper_bound(lis1, lis1 + n + 1, t[i]); *it = t[i]; len[i] = max(temp, (int)(it - lis1)); temp = max(temp, len[i]); } int lis2[n + 1]; fill(lis2, lis2 + n + 1, -2e9); lis2[n] = 2e9; int ans = 0; for (int i = n - 1; i >= 0; i--) { auto it = upper_bound(lis2, lis2 + n + 1, t[i] - x); ans = max(ans, len[i] + n - (int)(it - lis2)); it = upper_bound(lis2, lis2 + n + 1, t[i]); lis2[--it - lis2] = t[i]; } cout << ans; } // https://oj.uz/problem/view/CEOI18_glo
#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...