Sắp xếp tăng-giảm

Đề bài

Mô tả

Trên giá sách có n quyển sách. Quyển thứ i có tên là xâu si gồm đúng m chữ cái in hoa. Các tên sách đôi một khác nhau.

An muốn xếp sách theo thứ tự từ điển tăng dần, còn Bình muốn xếp theo thứ tự từ điển giảm dần. Để dung hoà, hai bạn thống nhất một thứ tự mới gọi là thứ tự tăng-giảm: các vị trí lẻ so sánh tăng dần, còn các vị trí chẵn so sánh giảm dần (vị trí trong xâu được đánh số từ 1).

Cụ thể, xâu a đứng trước xâu b trong thứ tự tăng-giảm khi và chỉ khi tại vị trí p đầu tiên mà ab khác nhau:

  • nếu p lẻ thì ap đứng trước bp trong bảng chữ cái;
  • nếu p chẵn thì ap đứng sau bp trong bảng chữ cái.

Hãy sắp xếp n tên sách theo thứ tự tăng-giảm.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • n dòng tiếp theo, dòng thứ i chứa xâu si gồm m chữ cái in hoa.

Dữ liệu ra

In ra n số nguyên trên một dòng: chỉ số của các quyển sách (theo thứ tự nhập vào, đánh số từ 1) sau khi đã sắp xếp theo thứ tự tăng-giảm.

Ràng buộc

  • 1n·m106
  • Mỗi si gồm đúng m chữ cái trong bảng chữ cái in hoa AZ
  • Các xâu s1,s2,,sn đôi một khác nhau

Ví dụ

Input Output Giải thích
5 2
AA
AB
BB
BA
AZ
5 2 1 3 4 Vị trí 1 là lẻ nên so sánh tăng dần: ba xâu bắt đầu bằng A đứng trước hai xâu bắt đầu bằng B. Trong mỗi nhóm, vị trí 2 là chẵn nên so sánh giảm dần: AZ AB AA, rồi BB BA.
4 3
ABC
AAC
ACB
BAA
3 1 2 4 Ba xâu đầu cùng bắt đầu bằng A nên đứng trước BAA. Chúng khác nhau tại vị trí 2 (chẵn, giảm dần): C của ACB, rồi B của ABC, rồi A của AAC.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0