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

Chọn đồ uống

Đề bài

Mô tả

n học sinh sống trong một tòa nhà, học sinh thứ i có loại đồ uống yêu thích là ai (với 1aik). Các loại đồ uống được đánh số từ 1 đến k.

Có vô hạn các bộ đồ uống. Mỗi bộ gồm đúng hai phần đồ uống cùng loại. Nói cách khác, có k loại bộ; bộ loại j chứa hai phần đồ uống loại j. Số lượng bộ mỗi loại là không giới hạn.

Cần chọn đúng n/2 bộ để mỗi học sinh nhận được đúng một phần đồ uống. Nếu n lẻ thì sẽ dư đúng một phần (giáo viên uống). Sau khi nhận đủ số bộ, các học sinh tự phân chia các phần một cách tùy ý.

Hãy xác định số học sinh nhiều nhất có thể nhận được đúng loại đồ uống yêu thích của mình, khi các bộ được chọn tối ưu và việc phân chia cũng được thực hiện tối ưu.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk — số học sinh và số loại đồ uống.
  • n dòng tiếp theo, mỗi dòng chứa một số nguyên ai — loại đồ uống yêu thích của học sinh thứ i.

Dữ liệu ra

In ra một số nguyên duy nhất — số học sinh nhiều nhất có thể nhận được loại đồ uống yêu thích.

Ràng buộc

  • 1n,k1000
  • 1aik

Ví dụ

Input Output Giải thích
5 3
1
3
1
1
2
4 Cần 5/2=3 bộ. Chọn các bộ loại 1, 1, 2 (gồm phần: 1, 1, 1, 1, 2, 2). Bốn học sinh thích loại 1 và 2 đều được nhận đúng đồ uống yêu thích; chỉ học sinh thích loại 3 (học sinh thứ 2) không được toại nguyện.
10 3
2
1
3
2
3
3
1
3
1
2
9 Số lượng học sinh yêu thích mỗi loại lần lượt là 3, 3, 4. Có đúng hai loại có số lẻ học sinh yêu thích, do đó có thể thỏa mãn tới 9 trong 10 học sinh.

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