제출 #944952

#제출 시각아이디문제언어결과실행 시간메모리
944952imannRabbit Carrot (LMIO19_triusis)C++17
100 / 100
69 ms5716 KiB
#include <iostream> #include <array> #include <algorithm> #include <limits> using ll = long long; const int MAX_N = 2*1000*100 + 3; std::array<ll, MAX_N> As, dp; int solve(int n) { std::reverse(As.begin(), As.begin() + n); dp.fill(std::numeric_limits<ll>::max()); for (int i = 0; i < n; ++i) { if (As[i] <= 0) { int j = std::upper_bound(dp.begin(), dp.begin() + n, As[i]) - dp.begin(); dp[j] = As[i]; } } int ans = 0; for (int i = 0; i < n; ++i) { if (dp[i] != std::numeric_limits<ll>::max()) ans = i + 1; } return ans; } int main() { int n, m; std::cin >> n >> m; for (int i = 0; i < n; ++i) { std::cin >> As[i]; As[i] -= (i + 1) * m; } std::cout << n - solve(n) << std::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...