fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. int np(const vector<int>& arr) {
  9. int n = arr.size();
  10. if (n == 0) return 0;
  11.  
  12. vector<int> dp(n, 1);
  13.  
  14. for (int i = 1; i < n; ++i) {
  15. for (int j = 0; j < i; ++j) {
  16. if (arr[i] >= arr[j]) {
  17. dp[i] = max(dp[i], dp[j] + 1);
  18. }
  19. }
  20. }
  21.  
  22. // Maksymalna wartość w tablicy dp daje długość najdłuższego niemalejącego podciągu
  23. return *max_element(dp.begin(), dp.end());
  24. }
  25.  
  26. int main() {
  27. int n;
  28. cin >> n;
  29.  
  30. vector<int> arr(n);
  31. for (int i = 0; i < n; ++i) {
  32. cin >> arr[i];
  33. }
  34.  
  35. int lnds_length = np(arr);
  36. int deletions = n - lnds_length; // Liczba elementów do usunięcia
  37.  
  38. cout <<n - lnds_length;
  39. return 0;
  40. }
  41.  
Success #stdin #stdout 0.01s 5272KB
stdin
5
2 4 3 5 1
stdout
2