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

Polycarp và đài phát thanh

Đề bài

Mô tả

Polycarp là biên tập viên của một đài phát thanh. Anh nhận được danh sách phát cho ngày mai dưới dạng một dãy a1,a2,,an, trong đó ai là mã số của ban nhạc biểu diễn bài hát thứ i. Polycarp yêu thích các ban nhạc có mã số từ 1 đến m (các mã số khác thì không).

Gọi bj là số bài hát mà ban nhạc j biểu diễn trong danh sách (sau khi Polycarp chỉnh sửa). Polycarp muốn thay đổi danh sách phát sao cho giá trị nhỏ nhất trong b1,b2,,bm lớn nhất có thể.

Hãy tìm giá trị tối đa của min(b1,b2,,bm) và số thay đổi tối thiểu cần thực hiện để đạt được giá trị đó. Mỗi thay đổi là việc thay thế ban nhạc biểu diễn bài hát thứ i bằng một ban nhạc tùy ý khác (không bắt buộc phải thuộc nhóm 1m, nhưng phải là số nguyên dương).

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên nm.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

  • Dòng thứ nhất in ra hai số nguyên: giá trị tối đa của min(b1,,bm) và số thay đổi tối thiểu.
  • Dòng thứ hai in ra dãy đã chỉnh sửa (mỗi phần tử là một số nguyên dương).

Nếu có nhiều đáp án thỏa mãn, in ra một đáp án bất kỳ.

Ràng buộc

  • 1mn2000
  • 1ai109

Ví dụ

Input Output Giải thích
4 2
1 2 3 2
2 1
1 2 1 2
Thay a3=3 thành 1. Khi đó b1=b2=2, min=2.
7 3
1 3 2 2 2 2 1
2 1
1 3 3 2 2 2 1
Thay một số 2 thành 3, được b1=2, b2=3, b3=2.
4 4
1000000000 100 7 1000000000
1 4
1 2 3 4
Cả 4 phần tử đều phải đổi, mỗi ban nhạc biểu diễn đúng 1 bài.

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