제출 #1042270

#제출 시각아이디문제언어결과실행 시간메모리
1042270IdanRosenRabbit Carrot (LMIO19_triusis)C++98
0 / 100
1 ms452 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; typedef long double ld; int min_cost(vector<ll> arr, ll k) { ll n = arr.size(); // for (ll i = 0; i < n; i++) arr[i] -= k * i; // find the length of the longest decreasing subsequence vector<ll> dp(n, -1); ll lis = 0; for (ll i = 0; i < n; i++) { ll start = 0; ll end = lis; while (start < end) { ll mid = start + (end - start) / 2; if (arr[dp[mid]] + k >= arr[i]) start = mid + 1; else end = mid; } if (start != 0 || i == 0) { dp[start] = i; if (start == lis) ++lis; } } return n - lis; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll n, m; cin >> n >> m; vector<ll> arr; arr.push_back(0); for (ll i = 0; i < n; i++) { ll val; cin >> val; arr.push_back(val); } cout << min_cost(arr, m); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...