제출 #574584

#제출 시각아이디문제언어결과실행 시간메모리
574584beabossRabbit Carrot (LMIO19_triusis)C++14
100 / 100
84 ms4908 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll mod = 1000000007; int main() { ll n, m; cin >> n >> m; vector<ll> vals(n); for (ll i = 1; i <= n; i++) { int d; cin >> d; vals[i - 1] = m * i - d; } vector<int> dp; int lis = 0; if (vals[0] >= 0) { lis++; dp.push_back(vals[0]); } for (ll i = 1; i < n; i++) { if (vals[i] < 0) continue; if (upper_bound(dp.begin(), dp.end(), vals[i]) == dp.end()) { lis++; dp.push_back(vals[i]); } else { dp[upper_bound(dp.begin(), dp.end(), vals[i]) - dp.begin()] = vals[i]; } // if (m * (i + 1) < vals[i]) continue; // ll best = -1; // ll best_s = 0; // for (ll j = 0; j < i; j++) { // if (vals[i] > vals[j] + m * (i - j)) continue; // if (dp[j + 1] >= best_s) { // best_s = dp[j + 1]; // best = j; // } // } // dp[i + 1] = 1 + dp[best + 1]; } cout << n - lis << 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...