#10035. MAXMED - Số trung vị lớn nhất

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Nguyễn Văn Đạt

Đề bài

Bạn được cấp một mảng a với N số nguyên. Trong đó N là số lẻ. Bạn có thể thực hiện các thao tác sau với mảng:

  • Chọn một phần tử a_i ;
  • Tăng a_i lên một đơn vị (a_i = a_i + 1) .

Bạn cần làm cho giá trị trung vị của mảng lớn nhất có thể bằng cách sử dụng tối đa k thao tác.

Trung vị của mảng có kích thước lẻ là phần tử ở chính giữa sau khi mảng được sắp xếp theo thứ tự không giảm. Ví dụ, trung vị của mảng [1, 5, 2, 3, 5] 3 .

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên N\ (1 ≤ N ≤ 2 × 10^5, N\text{ là số lẻ}) k\ (1 ≤ k ≤ 10^9) - số phần tử trong mảng và số thao tác lớn nhất mà bạn có thể thực hiện;
  • Dòng thứ hai chứa N số nguyên a_1, a_2,..., a_N\ (1 ≤ a_i ≤ 10^9) .

Kết quả:

  • Đưa ra một số nguyên duy nhất - giá trị trung vị lớn nhất có thể có sau các thao tác.

Ví dụ:

Dữ liệu: Kết quả:
3 2 5
1 3 5
Dữ liệu: Kết quả:
5 5 3
1 2 1 1 1
Dữ liệu: Kết quả:
7 7 5
4 1 2 4 3 4 4

Giải thích:

Ví dụ 1:

  • Bạn có thể tăng phần tử thứ hai lên hai lần. Mảng trở thành [1, 5, 5] và giá trị trung vị là 5 .

Ví dụ 2:

  • Sau khi thực hiện 5 thao tác. Mảng trở thành [1, 1, 3, 3, 3] và giá trị trung vị là 3 .

Ví dụ 3:

  • Sau khi thực hiện 7 thao tác. Mảng trở thành [1, 2, 3, 5, 6, 6, 6] và giá trị trung vị là 5 .