제출 #330101

#제출 시각아이디문제언어결과실행 시간메모리
330101alien_loverRabbit Carrot (LMIO19_triusis)C++14
100 / 100
30 ms4200 KiB
#include <iostream> #include <vector> #include <algorithm> #include <climits> using namespace std; typedef long long ll; #define all(x) begin(x), end(x) #define sz(x) (int) x.size() const int PRIME = 1e9 + 7; // int main(){ // ios_base::sync_with_stdio(0); cin.tie(0); // int n; // ll m; // cin >> n >> m; // vector<ll> alteredHeights(n); // for(int i = 0; i < n; i++){ // ll h; // cin >> h; // alteredHeights[i] = m * (ll)(i+1) - h; // } // vector<ll> dp; // dp.push_back(LLONG_MIN); // for(int i = 0; i < n; i++){ // if(alteredHeights[i] < 0){ // continue; // } // int ind = upper_bound(dp.begin(), dp.end(), alteredHeights[i]) - dp.begin(); // if(ind == sz(dp)){ // dp.push_back(0); // }else{ // dp[ind] = alteredHeights[i]; // } // } // cout << n - dp.size() + 1 << '\n'; // } // void add(ll x) { // int lo = upper_bound(all(bes), x) - begin(bes); // if (lo == sz(bes)) bes.push_back(0); // bes[lo] = x; // } int N; ll M; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N >> M; vector<ll> a(N); for(int i = 0; i < N; i++){ ll h; cin >> h; a[i] = M * (i+1) - h; } vector<ll> bes; bes.push_back(LLONG_MIN); // for(int i = 0; i < N; i++){ // a[i] = M * (i+1) - a[i]; // } for(int i = 0; i < N; i++){ if(a[i] < 0){ continue; } int lo = upper_bound(all(bes), a[i]) - begin(bes); if (lo == sz(bes)) bes.push_back(0); bes[lo] = a[i]; // int ind = upper_bound(dp.begin(), dp.end(), alteredHeights[i]) - dp.begin(); // if(ind == sz(dp)){ // dp.push_back(0); // }else{ // dp[ind] = alteredHeights[i]; // } } cout << N - sz(bes) + 1 << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...