Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import deque
- nums = [int(x) for x in input().split()]
- size = [0] * len(nums)
- size[0] = 1
- parent = [None] * len(nums)
- best_idx = 0
- best_size = 1
- for curr in range(1, len(nums)):
- curr_num = nums[curr]
- curr_best_size = 1
- curr_parent = None
- for prev in range(curr - 1, -1, -1):
- prev_num = nums[prev]
- if prev_num >= curr_num:
- continue
- if size[prev] + 1 >= curr_best_size:
- curr_best_size = size[prev] + 1
- curr_parent = prev
- size[curr] = curr_best_size
- parent[curr] = curr_parent
- if curr_best_size > best_size:
- best_size = curr_best_size
- best_idx = curr
- result = deque()
- while best_idx is not None:
- result.appendleft(nums[best_idx])
- best_idx = parent[best_idx]
- print(*result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement