Tối đa hóa median lương
Đề bài
Mô tả
Bạn quản lý một công ty có nhân viên (với là số lẻ). Bạn có đồng để chi trả lương, và nhân viên thứ phải được trả một mức lương nguyên nằm trong đoạn .
Hãy phân phối lương sao cho median (số ở giữa) của dãy lương là lớn nhất có thể.
Median của một dãy gồm số lẻ phần tử là phần tử ở vị trí giữa sau khi sắp xếp tăng dần. Ví dụ:
- Median của là .
- Median của là .
Bạn không bắt buộc phải tiêu hết đồng. Tổng số luôn không vượt quá (luôn đủ tiền để trả mức lương tối thiểu cho mọi người).
Có truy vấn độc lập, hãy in ra median lớn nhất có thể đạt được cho mỗi truy vấn.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số truy vấn.
- Mỗi truy vấn:
- Dòng đầu chứa hai số nguyên và .
- dòng tiếp theo, dòng thứ chứa hai số nguyên và .
Dữ liệu ra
Với mỗi truy vấn, in ra một số nguyên duy nhất — median lương lớn nhất có thể.
Ràng buộc
- , lẻ
- Tổng trên toàn bộ truy vấn không vượt quá .
- trong mỗi truy vấn.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 26 10 12 1 4 10 11 1 1337 1 1000000000 5 26 4 4 2 4 6 8 5 6 2 7 |
11 1337 6 |
Truy vấn 1: gán lương → median = . Truy vấn 2: chỉ có một nhân viên, phải trả . Truy vấn 3: gán → median = . |
| 1 1 1000000000 1000000000 1000000000 |
1000000000 | Một nhân viên với , lương duy nhất là . |
Bình luận