fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int n;
  6. int dp[1005];
  7. int v[1005];
  8.  
  9. int f(int id){
  10. if(id == 0) return 1;
  11. int &ret = dp[id];
  12. if(ret != -1) return ret;
  13. ret = 1;
  14. for(int i = 0; i < id; i++){
  15. int x = f(i);
  16. if(v[i] <= v[id]) ret = max(ret, x+1);
  17. }
  18. return ret;
  19. }
  20.  
  21. int main()
  22. {
  23. cin>>n;
  24. for(int i = 0; i < n; i++) cin>>v[i];
  25. fill(begin(dp), end(dp),-1);
  26. dp[0] = 1;
  27. f(n-1);
  28. int ans = 1;
  29. for(int i = 0; i < n; i++) ans = max(ans, dp[i]);
  30. cout << ans << endl;
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0s 4492KB
stdin
5
1 3 2 4 1
stdout
3