Sắp xếp z

Đề bài

Mô tả

Một dãy a gồm n phần tử được gọi là z-sorted nếu đồng thời thoả mãn hai điều kiện (chỉ số tính từ 1):

  1. ai≥ai−1 với mọi chỉ số i chẵn;
  2. ai≤ai−1 với mọi chỉ số i lẻ, i>1.

Nói cách khác, dãy phải đi lên rồi đi xuống xen kẽ: a1≤a2≥a3≤a4≥…

Ví dụ, các dãy [1,2,1,2] và [1,1,1,1] là z-sorted, còn [1,2,3,4] thì không.

Cho dãy a, hãy sắp xếp lại (hoán vị) các phần tử của nó để thu được một dãy z-sorted, hoặc cho biết điều đó là không thể.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số phần tử của dãy a.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an.

Dữ liệu ra

Nếu có thể sắp xếp lại dãy a thành một dãy z-sorted, in ra n số nguyên cách nhau bởi dấu cách là dãy sau khi sắp xếp. Ngược lại, in ra đúng một từ Impossible.

Nếu có nhiều cách sắp xếp hợp lệ, in ra cách bất kỳ.

Ràng buộc

  • 1≤n≤1000
  • 1≤ai≤109

Ví dụ

Input Output Giải thích
5
1 3 2 2 5
1 3 2 5 2 Kiểm tra: 3≥1, 2≤3, 5≥2, 2≤5. Dãy 1 5 2 3 2 cũng hợp lệ và được chấp nhận.
4
1 2 2 1
1 2 1 2 Kiểm tra: 2≥1, 1≤2, 2≥1.
3
100 1 2
1 100 2 Phần tử lớn nhất được đưa vào vị trí chẵn duy nhất.

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