QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show] Hackable ✓

#127. Chiến thuật trò chơi bài

Statistics

Alice và Bob chuẩn bị chơi một trò chơi bài. Có $n$ lá bài, mỗi lá bài có ghi một số nguyên trên đó. Trò chơi diễn ra như sau:

  1. Alice chọn một số nguyên nằm giữa $a$ và $b$, tính cả hai đầu mút. Gọi số nguyên này là $t$. Sau đó, Alice cho Bob biết giá trị của $t$.
  2. Bob chọn $k$ trong số $n$ lá bài. Tính tổng các số nguyên được ghi trên $k$ lá bài mà Bob chọn. Gọi tổng này là $u$.

Mục tiêu của Alice là làm cho $|t - u|$ lớn nhất có thể và mục tiêu của Bob là làm cho $|t - u|$ nhỏ nhất có thể. Trước khi trò chơi bắt đầu, cả Alice và Bob đều biết các giá trị của $n$, $k$, $a$ và $b$, cũng như các số nguyên trên các lá bài. Cả Alice và Bob đều sẽ chơi tối ưu. Cụ thể, Alice sẽ đưa ra lựa chọn khi biết rằng Bob chắc chắn sẽ cực tiểu hóa $|t - u|$ ứng với giá trị $t$ được thông báo. Ngoài ra, giả sử rằng Alice ưu tiên chọn giá trị $t$ nhỏ hơn nếu cô ấy có nhiều lựa chọn tốt như nhau.

Nhiệm vụ của bạn là xác định kết quả của trò chơi: giá trị $t$ mà Alice sẽ chọn và $k$ lá bài mà Bob sẽ chọn ứng với giá trị $t$ đó.

Dữ liệu vào

Dữ liệu vào gồm hai dòng biểu diễn một bộ kiểm tra duy nhất. Dòng đầu tiên chứa bốn số nguyên $n$, $k$, $a$ và $b$ ($1 \le k \le n \le 600$, $0 \le a \le b \le 1.8 \cdot 10^5$). Dòng thứ hai chứa $n$ số nguyên $x_1, \ldots, x_n$ ($0 \le x_i \le 300$), cho biết số $x_i$ được ghi trên lá bài thứ $i$.

Dữ liệu ra

In ra hai dòng: Dòng đầu tiên chứa một số nguyên biểu diễn giá trị $t$ mà Alice sẽ chọn. Dòng thứ hai chứa $k$ số nguyên phân biệt nằm giữa $1$ và $n$, tính cả hai đầu mút, biểu diễn chỉ số của các lá bài mà Bob sẽ chọn. Nếu Bob có nhiều lựa chọn tốt như nhau, hãy in ra bất kỳ lựa chọn nào trong số đó.

Ví dụ

Dữ liệu vào 1

4 2 58 100
10 10 50 80

Dữ liệu ra 1

75
2 3

Dữ liệu vào 2

8 3 1300 1800
2 0 1 5 0 4 1 9

Dữ liệu ra 2

1800
4 6 8

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.