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

Độ lệch đơn giản

Đề bài

Mô tả

Định nghĩa độ lệch đơn giản của một tập hợp số là trung bình cộng trừ đi trung vị của tập hợp đó.

  • Trung bình cộng của một tập hợp là tổng các phần tử chia cho số phần tử.
  • Trung vị của một tập hợp là phần tử đứng giữa sau khi sắp xếp tăng dần, hoặc trung bình cộng của hai phần tử đứng giữa nếu tập hợp có số phần tử chẵn.

Cho một danh sách gồm n số nguyên (các số không nhất thiết phân biệt). Hãy chọn ra một tập con khác rỗng của danh sách sao cho độ lệch đơn giản là lớn nhất.

Ở đây "tập con" được hiểu theo nghĩa chọn ra một số vị trí trong danh sách, nên nếu một giá trị xuất hiện nhiều lần trong danh sách thì nó cũng có thể được chọn nhiều lần.

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên n là số phần tử của danh sách.
  • Dòng thứ hai chứa n số nguyên x1,x2,,xn.

Dữ liệu ra

  • Dòng đầu tiên in ra một số nguyên k là số phần tử của tập con được chọn.
  • Dòng thứ hai in ra k số nguyên là các phần tử của tập con, theo thứ tự tuỳ ý.

Nếu có nhiều tập con tối ưu, in ra tập con bất kỳ trong số đó.

Ràng buộc

  • 1n200000
  • 0xi106

Ví dụ

Input Output Giải thích
4
1 2 3 12
3
1 2 12
Tập con {1, 2, 12} có trung bình cộng 5, trung vị 2, độ lệch đơn giản 52=3. Đây là giá trị lớn nhất có thể.
4
1 1 2 2
3
1 1 2
Giá trị 1 xuất hiện hai lần trong danh sách nên được chọn hai lần. Trung bình cộng là 4/3, trung vị là 1, độ lệch đơn giản là 1/3.
2
1 2
1
2
Mọi tập con của danh sách này đều có trung bình cộng bằng trung vị, nên độ lệch đơn giản luôn bằng 0.

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