wintest

Киров 7b

Jan 3rd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. #define MAX 100
  4. int x[MAX];
  5.                                                        
  6. unsigned n;
  7. unsigned LNS[MAX];
  8. unsigned next[MAX];
  9.  
  10. unsigned LNS_Length(unsigned *start)
  11. {
  12.     unsigned i, j;
  13.     unsigned l;
  14.     unsigned len = 0;
  15.     for (i = n; i >= 1; i--) {
  16.         for (l = 0, j = i + 1; j <= n; j++)
  17.             if (x[j] >= x[i] && LNS[j] > l) {
  18.                 l = LNS[j];
  19.                 next[i] = j;
  20.             }
  21.         LNS[i] = l + 1;
  22.         if (LNS[i] > len) {
  23.             len = LNS[i];
  24.             *start = i;
  25.         }
  26.     }
  27.     return len;
  28. }
  29. int main() {
  30.     while (std::cin >> n) {
  31.         for (size_t i = 1; i <= n; i++)
  32.         {
  33.             std::cin >> x[i];
  34.         }  
  35.         unsigned start;
  36.         std::cout << LNS_Length(&start) << std::endl;
  37.  
  38.     }
  39.  
  40.     return 0;
  41. }
Add Comment
Please, Sign In to add comment