Điểm và luỹ thừa của hai

Đề bài

Mô tả

Trên một trục số có n điểm phân biệt, điểm thứ i có toạ độ xi.

Hãy chọn ra một tập con các điểm sao cho khoảng cách giữa mọi cặp điểm trong tập con đó đều là một luỹ thừa nguyên không âm của 2. Điều kiện phải đúng với mọi cặp điểm, không chỉ các cặp kề nhau. Tập con gồm đúng một điểm luôn thoả mãn điều kiện.

Nói cách khác, cần chọn nhiều nhất có thể các điểm xi1,xi2,,xim sao cho với mọi cặp xij,xik ta có |xijxik|=2d với d là một số nguyên không âm nào đó (d không nhất thiết giống nhau ở mọi cặp).

Trong tất cả các tập con thoả mãn, hãy tìm tập con có kích thước lớn nhất.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số lượng điểm.
  • Dòng thứ hai chứa n số nguyên đôi một phân biệt x1,x2,,xn là toạ độ các điểm.

Dữ liệu ra

  • Dòng đầu in ra m là số lượng điểm lớn nhất có thể chọn.
  • Dòng thứ hai in ra m số nguyên là toạ độ các điểm được chọn, theo thứ tự bất kì.

Nếu có nhiều đáp án, in ra một đáp án bất kì.

Ràng buộc

  • 1n2·105
  • 109xi109
  • Các giá trị xi đôi một phân biệt.

Ví dụ

Input Output Giải thích
6
3 5 4 7 10 12
3
3 4 5
Với tập {3,4,5} ta có 43=1=20, 54=1=2053=2=21. Không tồn tại tập con thoả mãn với 4 điểm trở lên. Tập {3,5,7} cũng là một đáp án hợp lệ.
5
-1 2 5 8 11
1
-1
Các điểm cách nhau bội của 3, nên không có cặp nào có khoảng cách là luỹ thừa của 2. Chỉ chọn được một điểm; in ra điểm nào cũng được.
4
1 2 3 8
3
1 2 3
Chọn {1,2,3} với các khoảng cách 1,1,2. Điểm 8 cách 1,2,3 lần lượt 7,6,5, đều không phải luỹ thừa của 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.47 awk 1.3.4 gcc 16.2.0 csc 6.12.0.200 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 kotlinc 2.4.10 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 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 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0