josiftepe

Untitled

Nov 14th, 2020
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. const int maxn = 1e5 + 10;
  5. const int INF = 2e9 + 5;
  6. int n;
  7. int arr[maxn];
  8. int dp[maxn]; /*dp[i] znaci deka najdolgata rastecka podniza do pozicija i e ednakva na dp[i]*/
  9. int main(){
  10.     int t;
  11.     cin >> t;
  12.     while(t--){
  13.     cin >> n;
  14.     for(int i = 0; i < n; ++i) {
  15.         cin >> arr[i];
  16.         dp[i] = 1;
  17.     }
  18.     for(int at = 0; at < n; ++at) {
  19.         for(int nxt_index = at + 1; nxt_index < n; ++nxt_index) {
  20.             if(arr[at] <= arr[nxt_index]) {
  21.                 dp[nxt_index] = max(dp[nxt_index], dp[at] + 1);
  22.             }
  23.         }
  24.     }
  25.     int ret = 0;
  26.     for(int i = 0; i < n; ++i) {
  27.         ret = max(ret, dp[i]);
  28.     }
  29.     cout << ret << endl;
  30.     }
  31.     return 0;
  32. }
  33. /*
  34. [10 9 2 5 3 7 101 18]
  35.  
  36.  rec(0) -> rec(6)
  37.  rec(0) -> rec(7)
  38.  rec(1) -> rec(6)
  39.  rec(1) -> rec(7)
  40.  rec(2) -> rec(3) -> rec(5) -> rec(6)
  41.  rec(2) -> rec(3) -> rec(5) -> rec(7)
  42.  rec(2) -> rec(4) -> rec(5) -> rec(6)
  43.  rec(2) -> rec(4) -> rec(5) -> rec(7)
  44.  .
  45.  .
  46.  .
  47.  
  48.  
  49.  
  50.  */
  51.  
Advertisement
Add Comment
Please, Sign In to add comment