Đóng cửa điểm bỏ phiếu
Đề bài
Mô tả
Có ứng cử viên, đánh số từ đến , và điểm bỏ phiếu, đánh số từ đến . Ứng cử viên số là ứng cử viên đối lập.
Với mỗi điểm bỏ phiếu, bạn biết số phiếu mà từng ứng cử viên nhận được tại điểm đó: là số phiếu của ứng cử viên tại điểm bỏ phiếu .
Ứng cử viên đối lập sẽ trúng cử nếu tổng số phiếu của họ trên tất cả các điểm bỏ phiếu không bị hủy là lớn hơn thực sự tổng số phiếu của mọi ứng cử viên khác.
Việc duy nhất bạn được phép làm để ngăn ứng cử viên đối lập trúng cử là hủy kết quả tại một số điểm bỏ phiếu (khi một điểm bị hủy, toàn bộ số phiếu tại điểm đó của tất cả ứng cử viên không được tính).
Hãy ngăn ứng cử viên đối lập trúng cử bằng cách hủy số điểm bỏ phiếu ít nhất có thể, rồi chỉ ra các điểm bị hủy. Nếu hủy hết mọi điểm thì số phiếu của tất cả ứng cử viên đều bằng , nên ứng cử viên đối lập không trúng cử — vì vậy luôn tồn tại đáp án.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và — số ứng cử viên và số điểm bỏ phiếu.
- dòng tiếp theo, dòng thứ chứa số nguyên — số phiếu của từng ứng cử viên tại điểm bỏ phiếu .
Dữ liệu ra
- Dòng đầu in số nguyên — số điểm bỏ phiếu ít nhất cần hủy.
- Dòng thứ hai in số nguyên — chỉ số của các điểm bỏ phiếu bị hủy, theo thứ tự bất kỳ. Nếu có nhiều cách hủy điểm, in ra cách bất kỳ. Khi , dòng thứ hai để trống.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 3 6 3 4 2 8 3 7 5 6 7 5 2 4 7 9 |
2 3 1 |
Tổng phiếu ban đầu là — ứng cử viên đối lập (số ) dẫn đầu. Hủy điểm và , chỉ còn điểm với các tổng ; ứng cử viên không còn dẫn đầu thực sự. |
| 2 1 1 1 |
0 | Tổng phiếu là và ; ứng cử viên đối lập (số ) không lớn hơn thực sự ứng cử viên , nên không cần hủy điểm nào. |
| 3 3 2 3 8 4 2 9 3 1 7 |
3 1 2 3 |
Ứng cử viên đối lập (số ) đang thắng ở mọi tổ hợp; chỉ khi hủy cả ba điểm thì số phiếu mới đều bằng và họ không trúng cử. |
Bình luận