Advertisement
STANAANDREY

dp

Sep 9th, 2019
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int n;
  5. int v[1000], poz[1000], maxi, poz2;
  6. vector <int> dp(1000, 1);
  7.  
  8. void display(int p)
  9. {
  10.     if (p == 0)
  11.         return;
  12.     display(poz[p]);
  13.     cout << v[p] << ' ';
  14. }
  15.  
  16. int main()
  17. {
  18.     cin >> n;
  19.     for (int i = 1; i <= n; i++)
  20.         cin >> v[i];
  21.     for (int j = 2; j <= n; j++)
  22.     {
  23.         for (int i = 1; i < j; i++)
  24.             if (v[j] >= v[i])
  25.             {
  26.                 dp[j] = dp[i] + 1;
  27.                 poz[j] = i;
  28.             }
  29.     }
  30.  /*      for (int i = 1; i <= n; i++)
  31.            cout << poz[i] << ' ';
  32.            cout<<endl;//*/
  33.       for (int i = 1; i <= n; i++)
  34.        {
  35.            if (dp[i] > maxi)
  36.            {
  37.                maxi = dp[i];
  38.                poz2 = i;
  39.            }
  40.        }
  41.        display(poz2);//*/
  42.        //cout << poz2;
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement