LIS ngắn nhất và dài nhất
Đề bài
Mô tả
Cho một xâu độ dài chỉ gồm các ký tự < và >. Xâu này mô tả quan hệ giữa các phần tử liên tiếp của một dãy :
- Nếu là
<thì . - Nếu là
>thì .
Hãy tìm hai dãy, mỗi dãy là một hoán vị của và đều thỏa mãn mọi quan hệ mà mô tả, sao cho:
- Dãy thứ nhất có độ dài dãy con tăng dài nhất (LIS) nhỏ nhất có thể.
- Dãy thứ hai có độ dài dãy con tăng dài nhất lớn nhất có thể.
Hai dãy không nhất thiết phải khác nhau. Nếu có nhiều đáp án, in ra một đáp án bất kỳ. Luôn tồn tại ít nhất một đáp án.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số lượng bộ dữ liệu.
- Mỗi bộ dữ liệu nằm trên một dòng, gồm số nguyên và xâu độ dài , cách nhau bởi một dấu cách.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra hai dòng, mỗi dòng gồm số nguyên. Dòng thứ nhất là dãy có LIS nhỏ nhất, dòng thứ hai là dãy có LIS lớn nhất.
Ràng buộc
- Xâu chỉ gồm các ký tự
<và>, độ dài đúng bằng . - Tổng của tất cả trong một file dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 << 7 >><>>< 5 >>>< |
1 2 3 1 2 3 7 6 4 5 3 1 2 3 2 1 6 5 4 7 5 4 3 1 2 4 3 2 1 5 |
Bộ 1: xâu toàn < nên chỉ có duy nhất dãy 1 2 3, LIS bằng 3 cho cả hai yêu cầu.Bộ 2: LIS nhỏ nhất là 2 (ví dụ 4 5 trong dãy 7 6 4 5 3 1 2), LIS lớn nhất là 3 (ví dụ 3 6 7 trong dãy 3 2 1 6 5 4 7). Bộ 3: LIS nhỏ nhất là 2, LIS lớn nhất là 2. |
| 2 2 < 6 <<>>< |
1 2 1 2 4 5 6 3 1 2 1 2 5 4 3 6 |
Bộ 2: xâu bắt buộc nên LIS luôn ít nhất 3, dãy 4 5 6 3 1 2 đạt đúng 3. Còn 1 2 5 4 3 6 có LIS bằng 4 (ví dụ 1 2 5 6), đây là giá trị lớn nhất có thể. |
Bình luận