Cho một dãy số nguyên a1, a2, ..., an.
Xác định dãy con liên tiếp tăng dài nhất.
Input
Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤ 10^5).
Dòng thứ hai chứa n số nguyên a1, a2, ..., an (0 ≤ |ai| ≤ 10^9).
Output
Dãy con liên tiếp tăng dài nhất.
Ví dụ 1
Input |
Output |
5 |
4 50 |
Input |
Output |
5 |
2 8 9 |
Ví dụ 3
Input |
Output |
8 |
1 3 6 7 |
python
def lis_subarray(arr):
max_len = cur_len = 1
start_idx = 0
for i in range(1, len(arr)):
if arr[i] > arr[i - 1]:
cur_len += 1
else:
if cur_len > max_len:
max_len = cur_len
start_idx = i - cur_len
cur_len = 1
if cur_len > max_len:
max_len = cur_len
start_idx = len(arr) - cur_len
return arr[start_idx:start_idx + max_len]
# Example usage
n = int(input()) #Nhập số phần tử
arr = list(map(int, input().split())) #Nhập dãy số
result = lis_subarray(arr)
print(*result)