trang chủ / đề bài / lexmaxsub

Dãy con lớn nhất theo thứ tự từ điển

Đề bài

Mô tả

Cho một xâu s khác rỗng chỉ gồm các chữ cái Latin in thường. Hãy tìm dãy con lớn nhất theo thứ tự từ điển của s.

Một dãy con của s=s1s2…s|s| là một xâu khác rỗng có dạng sp1sp2…spk với 1≤p1<p2<…<pk≤|s|, tức là xâu thu được bằng cách xoá đi một số (có thể bằng 0) ký tự của s và giữ nguyên thứ tự các ký tự còn lại.

Xâu x lớn hơn xâu y theo thứ tự từ điển nếu tồn tại vị trí r sao cho x1=y1,…,xr=yr và xr+1>yr+1, hoặc nếu y là tiền tố thực sự của x. Các ký tự được so sánh theo mã ASCII.

Dữ liệu vào

Một dòng duy nhất chứa xâu s gồm các chữ cái Latin in thường.

Dữ liệu ra

In ra dãy con lớn nhất theo thứ tự từ điển của s.

Ràng buộc

  • 1≤|s|≤105
  • s chỉ gồm các chữ cái từ a đến z

Ví dụ

Input Output Giải thích
ababba bbba Chọn các vị trí in hoa trong aBaBBA. Ký tự b đầu tiên phải được lấy vì nó lớn hơn mọi ký tự bên phải, và ký tự a cuối cùng vẫn được lấy thêm vì một xâu dài hơn có cùng tiền tố thì lớn hơn.
abbcbccacbbcbaaba cccccbba Chọn abbCbCCaCbbCBaaBA. Đáp án bắt đầu bằng toàn bộ các ký tự c (ký tự lớn nhất), rồi đến các ký tự lớn nhất còn lại ở phần đuôi.
aa aa Cả hai ký tự đều được lấy: xâu aa lớn hơn xâu a theo thứ tự từ điển vì a là tiền tố thực sự của nó.

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