trang chủ / bài tập / balcircle

Vòng tròn cân bằng lớn nhất

Đề bài

Mô tả

n người xếp thành một hàng. Người thứ i có chiều cao ai.

Bạn được chọn ra một tập con bất kỳ trong số những người này và xếp họ thành một vòng tròn cân bằng. Một vòng tròn được gọi là cân bằng nếu với mỗi cặp người đứng cạnh nhau (kể cả cặp gồm người đầu tiên và người cuối cùng, vì đây là vòng tròn) thì chênh lệch chiều cao của họ không vượt quá 1.

Cụ thể, nếu chiều cao của những người được chọn theo thứ tự vòng tròn là b1,b2,,bk thì phải thỏa mãn |bjbj+1|1 với mọi j từ 1 đến k1, và đồng thời |b1bk|1.

Hãy chọn ra nhiều người nhất có thể và xếp họ thành một vòng tròn cân bằng. Một vòng tròn chỉ gồm đúng một người luôn được coi là cân bằng, nên đáp án luôn tồn tại.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

  • Dòng đầu tiên in ra k, số người trong vòng tròn cân bằng lớn nhất.
  • Dòng thứ hai in ra k số nguyên b1,b2,,bk, là chiều cao của những người theo thứ tự trong vòng tròn. Thứ tự này phải thỏa mãn |bjbj+1|1 với mọi j từ 1 đến k1, và |b1bk|1.

Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1n2·105
  • 1ai2·105

Ví dụ

Input Output Giải thích
7
4 3 5 1 2 2 1
5
1 1 2 3 2
Chọn 5 người có chiều cao 1, 1, 2, 3, 2. Kiểm tra vòng tròn: 1-1, 1-2, 2-3, 3-2, và 2-1 (khép vòng), mọi chênh lệch đều 1.
5
3 7 5 1 5
2
5 5
Hai người cao 5 tạo thành vòng tròn hợp lệ. Không thể chọn 3 người trở lên.
3
5 1 4
2
4 5
Hai người cao 4 và 5 chênh nhau 1.
7
2 2 3 2 1 2 2
7
1 2 3 2 2 2 2
Dùng được tất cả: một người cao 1, một người cao 3, và năm người cao 2.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0