Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input())
- a = list(map(int, input().split()))
- dp = [1] * n
- prev = [0] * n
- prev[0] = 0
- for i in range(1, n):
- k = i
- max_ = 1
- prev_ = 0
- for j in range(k):
- if a[j] < a[i] and dp[j] >= max_:
- max_ = dp[j] + 1
- prev_ = j
- dp[i] = max_
- prev[i] = prev_
- s = dp.index(max(dp))
- ans = [a[s]]
- while dp[s] != 1:
- s = prev[s]
- ans.append(a[s])
- ans.reverse()
- print(*ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement