trang chủ / đề bài / lisminmax

LIS ngắn nhất và dài nhất

Đề bài

Mô tả

Cho một xâu s độ dài n−1 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 a1,a2,…,an:

  • Nếu si là < thì ai<ai+1.
  • Nếu si là > thì ai>ai+1.

Hãy tìm hai dãy, mỗi dãy là một hoán vị của 1,2,…,n và đều thỏa mãn mọi quan hệ mà s 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 t 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 n và xâu s độ dài n−1, 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 n 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

  • 1≤t≤104
  • 2≤n≤2·105
  • Xâu s chỉ gồm các ký tự < và >, độ dài đúng bằng n−1.
  • Tổng của tất cả n trong một file dữ liệu không vượt quá 2·105.

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 a1<a2<a3 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

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0