Advertisement
Egor_1425

Untitled

Apr 17th, 2024
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.43 KB | None | 0 0
  1. n = int(input())
  2. a = list(map(int, input().split()))
  3. dp = [1] * n
  4. prev = [0] * n
  5. prev[0] = 0
  6.  
  7. for i in range(1, n):
  8.     k = i
  9.     max_ = 1
  10.     prev_ = 0
  11.     for j in range(k):
  12.         if a[j] < a[i] and dp[j] >= max_:
  13.             max_ = dp[j] + 1
  14.             prev_ = j
  15.     dp[i] = max_
  16.     prev[i] = prev_
  17.  
  18. s = dp.index(max(dp))
  19. ans = [a[s]]
  20. while dp[s] != 1:
  21.     s = prev[s]
  22.     ans.append(a[s])
  23. ans.reverse()
  24. print(*ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement