#include #define REP(i, n) for (int i = 0; (i) < int(n); ++ (i)) using namespace std; template vector longest_weak_increasing_subsequence(vector const & xs) { vector l; // l[i] is the last element of the increasing subsequence whose length is i + 1 for (auto && x : xs) { auto it = upper_bound(l.begin(), l.end(), x); if (it == l.end()) { l.push_back(x); } else { *it = x; } } return l; } int main() { // input int n; cin >> n; vector a(n); REP (i, n) cin >> a[i]; // solve vector b; REP (i, n) { int b_i = a[i] - i; if (b_i >= 1) b.push_back(b_i); } int answer = n - longest_weak_increasing_subsequence(b).size(); // output cout << answer << endl; return 0; }