제출 #958650

#제출 시각아이디문제언어결과실행 시간메모리
958650BodishaRabbit Carrot (LMIO19_triusis)C++17
0 / 100
0 ms348 KiB
#include <bits/stdc++.h> #define MAX_N 200005 #define MAX_A 1000000007 using namespace std; int n, m; int poles[MAX_N]; int dp[MAX_N]; int lds() { dp[0] = MAX_A; for(int i = 1; i <= n + 1; i++) { dp[i] = -1; } for(int i = 0; i <= n; i++) { int l = 0, r = n + 1; int ans = 0; while(l <= r) { int mid = l + (r - l) / 2; if(dp[mid] <= poles[i] && poles[i] - dp[mid] < m) { ans = mid; r = mid - 1; } else { l = mid + 1; } } dp[ans] = poles[i]; } for(int i = 1; i <= n + 1; i++) { if(poles[i] == -1) { return i - 1; } } return n + 1; } int main() { cin >> n >> m; poles[0] = 0; for(int i = 1; i <= n; i++) { cin >> poles[i]; } cout << lds() - 1; 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...