Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6. int n;
  7. while(cin>>n){
  8. if(n == -1) break;
  9. int dp[n+1][n+1][n+1] = { 0 };
  10. int arr[n+1];
  11. for(int i=0;i<n;i++){
  12. cin>>arr[i+1];
  13. }
  14. for(int k=1;k<n+1;k++) for(int i=0;i<k+1;i++) for(int j=0;j<k+1;j++){
  15. if(i != k and j != k){
  16. dp[k][i][j] = dp[k-1][i][j]; // no pinto nada
  17. if(i==0) dp[k][k][j] = max(dp[k][k][j],dp[k-1][i][j]+1);
  18. else if(arr[k] > arr[i]) dp[k][k][j] = max(dp[k][k][j],dp[k-1][i][j] + 1);
  19. if(j==0) dp[k][i][k] = max(dp[k][i][k],dp[k][i][j] +1);
  20. else if(arr[k] < arr[j]) dp[k][i][k] = max(dp[k][i][k],dp[k-1][i][j] +1);
  21. }
  22. }
  23. int answer = 0;
  24. for(int i=0;i<n+1;i++) for(int j=0;j<n+1;j++){
  25. answer = max(answer, dp[n][i][j]);
  26. }
  27. cout<<n-answer<<endl;
  28. }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement