AT_icpc2014spring_g.Proportional Representation

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

JAGJAG 王国举行了议会议员选举。这个国家唯一采用的制度是政党名单比例代表制。在这个系统中,每个公民投票给一个政党,一个政党赢得的席位数量将与其获得的选票数量成正比。由于议会席位总数是整数,当然,通常不可能完全按比例分配席位。在 JAGJAG 王国中,使用以下称为 D′HondtD'Hondt 方法的方法来确定每一方的席位数量。

假设每一方都有无限的候选人供应,并且每一方的候选人都以某种方式排序。对于获得 xx 票的政党的第 yy 候选人,分配价值 xy\dfrac{x}{y}。然后所有候选者按其分配价值的降序排序。第一个 TT 候选人被认为获胜,其中 TT 是席位总数,一个政党赢得的席位数是其获胜候选人的数量。

下面显示了一个包含三方的示例。

第一个政党获得了 4040 票的选票,第二个获得了 6060 票的选票,第三个获得了 3030 票的选票。如果席位总数为 T=9T = 9 ,则第一方将赢得 33 个席位,第二方 44 个席位,第三方 22 个席位。

在选择获胜候选人时:

  • 以抽签方式打破平局;
  • 任何并列的候选人都有机会获胜。

例如,在上面的示例中,如果 T=5T = 5,那么两个候选人的价值为 2020,并且有两种可能的结果:

  1. 第一方赢得 22 个席位、第二方 22 个席位,第三方 11 个席位。

  2. 第一方赢得 11 个席位、第二方 33 个席位,第三方 11 个席位。

你刚刚在电视上听到了选举结果。知道有效票的总数和每一方赢得的席位数,你想知道每一方获得了多少票。

给定 NN , MM 和 SiS_i (1≤i≤M)\begin{pmatrix}1 \le i \le M\end{pmatrix},分别表示有效票总数,政党数量和第 ii 政党赢得的席位数量,你的任务是分别为每一方确定它收到的最小和最大可能的票数。请注意,在某些情况下,给定的 NN ,MM 和 SiS_i 可能不存在这种情况。

输入格式

输入的第一行包含两个整数 NN (1≤N≤109)\begin{pmatrix}1 \le N \le 10^9 \end{pmatrix} 和 MM (1≤M≤30,000)\begin{pmatrix}1 \le M \le 30{,}000 \end{pmatrix} ,其中 NN 是有效票数的总数 ,MM 是参与方的数量。

接下来是 MM 行,其中第 ii 行包含一个整数 SiS_i (0≤Si≤30,000)\begin{pmatrix}0 \le S_i \le 30{,}000 \end{pmatrix},代表第 ii 党赢得的席位数。你可以假设存在 ii 且 Si≠0S_i \ne 0。

输出格式

如果给定的 NN , MM 和 SiS_i 不存在任何情况,则显示 impossible一词。否则,输出 MM 行,每行包含两个整数。第 ii 行中的第一个整数和第二个整数应该分别是第 ii 方获得的最小和最大可能票数。
\\

Sample Input 1\textrm{\textit{\textbf{Sample Input 1}}} :\\
10  210\;2\\
22\\
11\\
Output for the Sample Input 1\textrm{\textit{\textbf{Output for the Sample Input 1}}} :\\
5  75\;7\\
3  53\;5\\

Sample Input 2\textrm{\textit{\textbf{Sample Input 2}}} : \\
5  65\;6\\
00\\
22\\
00\\
22\\
66\\
00\\
Output for the Sample Input 2\textrm{\textit{\textbf{Output for the Sample Input 2}}} :\\
0  00\;0\\
1  11\;1\\
0  00\;0\\
1  11\;1\\
3  33\;3\\
0  00\;0\\

输入解题思路,AI测评打分。不知道怎么写?

首页