#P40013. 2019 ICPC NA Qualifier Contest C - Gerrymandering
2019 ICPC NA Qualifier Contest C - Gerrymandering
题目描述
Electoral systems across the world can vary widely. In some systems, such as winner-take-all, the winner is determined by the plurality of votes—the candidate that receives the most votes wins, and the loser(s) do not get a position.
Such elections can have “wasted votes.” Conceptually, a wasted vote is a vote that did not affect the election outcome. While the exact definition of a wasted vote varies, we’ll adopt the following definition: in an election with voters, every vote for a losing candidate is wasted (these are called lost votes), and every vote for a winning candidate beyond the strict majority of votes the candidate needs to win is wasted (these are called excess votes). For this problem we’ll consider a two-party system (let’s call the parties A and B) with elections that always involve one candidate from each party.
Let’s illustrate wasted votes with a simple example between two candidates in a district. Suppose that the candidate for party A receives votes and the candidate for party B receives votes. All votes for party A are wasted (lost votes for A), and votes for party B are wasted (excess votes for B). This is because B needs () votes to win (over A), so the remaining are wasted.
Political scientists use wasted votes to compute the efficiency gap, a single number that summarizes wasted votes. Suppose we have a number of races in different districts, where each district elects one person. Across all districts there are total votes cast, with total wasted votes for party A and total wasted votes for party B. Then the efficiency gap is:
In an election, districts are made up of precincts. A precinct is an indivisible group of voters. The votes for all precincts in a district are added together to find the results for that district. In this problem you are given a description of a number of precincts: the party vote totals for each precinct, and how those precincts have been grouped into districts. For each district, determine the party that wins and the wasted votes for each party. Then determine the efficiency gap between the two parties over all the districts.
输入格式
The input describes one election. The first line contains two integers and , where and . These indicate, respectively, the number of voting precincts and districts. Following this are lines describing the precincts. Line contains numbers: the district that precinct is assigned to (), the number of votes for the candidate from party A (), and the number of votes for the candidate from party B (). It is guaranteed that:
- for each precinct ,,
- each district is assigned at least one precinct, and
- there are no ties within any district.
输出格式
For each of the districts from to , print which party wins (a single character, either A or B). Then print the number of wasted votes for party A and for party B, in order. Finally, after reporting on all the districts, print the efficiency gap as measured over all the districts. The efficiency gap should be accurate to within an absolute error of .
样例
输入样例1
5 3
1 100 200
2 100 99
3 100 50
3 100 50
2 100 98
输出样例1
B 100 49
A 1 197
A 49 100
0.1965897693
输入样例2
4 4
3 100 99
2 100 99
1 100 99
4 100 99
输出样例2
A 0 99
A 0 99
A 0 99
A 0 99
0.4974874372
输入样例3
4 4
4 99 100
1 100 99
3 100 99
2 99 100
输出样例3
A 0 99
B 99 0
A 0 99
B 99 0
0.0000000000