#P16012. [CCO 2016 Day 2] Pirates
[CCO 2016 Day 2] Pirates
题目描述
A group of pirates found gold coins. They must decide on a way to distribute the coins amongst themselves. They have agreed on the following rules:
The oldest pirate proposes a distribution. (You can assume that all the pirates' ages are distinct.) A distribution assigns a non-negative integer number of coins to each pirate such that the sum of these numbers equals K.
Then, each pirate will vote either yes or no on the proposal. The number of yes votes required for the proposal to pass depends on the number of pirates. If there are pirates, then yes votes are required for the proposal to pass. If the proposal passes, the coins are assigned according the proposed distribution and the process ends. Otherwise, the oldest pirate is thrown overboard and the process is repeated without him.
The pirates act according to the following rules. The rules are given in order of priority; for example, rule is only applied to distinguish between multiple options that are optimal according to rule .
-
A pirate will act to prevent himself from being thrown overboard.
-
A pirate will act to maximize the number of coins he receives.
-
A pirate will act to maximize the number of pirates thrown overboard (excepting himself, because rule takes priority).
-
A pirate will act to maximize the number of coins received by the oldest pirate. If there are still multiple choices that fit these rules, he will maximize the gold received by the second-oldest pirate, then the third-oldest pirate, etc.
If there are multiple options that are optimal according to these rules, then the pirate chooses an action arbitrarily. (You can assume that the answer to this problem does not depend on the pirate's choice in this case.) Additionally, all the pirates are perfectly logical and know all the information contained in this problem statement. They cannot form agreements or coalitions because they do not trust each other.
We will number the pirates from to , where these are numbered from the youngest (pirate ) to the oldest (pirate ).
If there were only pirates (where ), how many coins would the oldest of them get?
输入格式
The first line of input will be the number .
The second line of input will be the integer .
The next lines of input contain indicating the number of yes votes required for a proposal to pass if there are pirates remaining .
For of the available marks for this problem .
For an additional of the available marks for this problem for all .
For an additional of the available marks for this problem, .
输出格式
The output should consist of integers, printed one per line. The line of output is the number of coins that the pirate would get if they were the oldest pirate; in other words, if only pirates existed. If the pirate is thrown overboard, output on the line.
5
100
1
1
2
2
3
100
100
99
99
98
5
100
1
2
3
4
4
100
-1
-1
-1
100
4
100
1
1
2
3
100
100
99
97
4
2
1
1
2
3
2
2
1
-1
提示
Explanation for Sample Output
If there are pirates left, pirate can propose that all of the gold coins go to him. Only vote is required for this proposal to pass, so he can guarantee that it passes by voting for it.
If there are pirates left, pirate needs someone else to vote for his proposal. He can ensure this by giving coin to pirate and to himself. Pirate knows that if the proposal doesn't pass, he will receive nothing. So a single coin is enough to secure his vote.
If there are pirates left, pirate gives gold coin to pirate and 99 to himself.
If there are pirates left, pirate gives gold coin to pirates and and keeps coins for himself.
Explanation for Sample Output
In this case, a full consensus is required for a proposal to pass, except when there are pirates, in which case only of the votes are required.
If there is full consensus required, and there are or more pirates, the youngest pirate will vote against the proposal to maximize their coins and also throw the most pirates overboard.
In the case where there are pirates, the oldest pirate will propose to give himself coins. Everyone except the youngest pirate will vote yes, because if this proposal doesn't pass, the youngest pirate will get all of them thrown overboard and then take the coins for himself when only he remains. Since the pirates don't want to be thrown overboard, they will vote yes, even though the oldest pirate will offer them nothing.
Explanation for Sample Output
The first three cases were explained in Sample Input . When there are pirates, the oldest pirate needs votes. He will give coins to the youngest pirate and coin to the second-youngest pirate, keeping the rest for himself.
Explanation for Sample Output
The situation is the same as in Example , but now there are only coins. With , or pirates, we have the same situations as in Example .
With pirates, the oldest pirate does not have enough coins to ensure the votes which he needs, so he will be thrown overboard.