Hi people i am kind lost at where to start for this lab assignment i have gotten for my mid term break:
Olympiad 2012
Problem
It's London!
International Olympic Committee President Jacques Rogge has announced that London will host the 2012
Olympic Games and Paralympic Games.
6 July, 2005, Singapore
London succeeded in her bid to host the game after 4 rounds of voting:
First round:
London 22
Paris 21
Madrid 20
New York 19
Moscow 15 (eliminated)
Second round:
Madrid 32
London 27
Paris 25
New York 16 (eliminated)
Third round:
London 39
Paris 33
Madrid 31 (eliminated)
Fourth round:
London 54
Paris 50 (eliminated)
If there are more than 10 cities competing to host the Olympic, there will be more rounds of voting, and
vote casting could become a marathon meeting. To avoid many rounds of vote casting, perhaps the
committee should use Australian ballots.
Australian ballots require that the voters rank the candidates in order of their choice. Initially only the first
choices of all voters are counted. If one candidate receives more than 50% of the vote, that candidate is
elected. If no candidate receives more than 50%, all candidates tied for the lowest number of votes are eliminated. When candidates eliminated received 0 vote, then the result of counting will not be changed. Only when the eliminated candidates have non-zero vote counts, then the ballots voted for these eliminated candidates are recounted in favour of their next highest
ranked candidate who has not been eliminated. This process continues until one candidate receives more than 50% of the vote or until all candidates are tied.
For example, suppose there are 4 cities involved, namely A, B, C and D. According to the first choice of the
100 votes received, 40 are for A and D, with B and C are getting 10 votes each. Since none of them receive a
majority, B and C are tied with the lowest vote count (10) and they are eliminated. Those who voted for B
and C will have their votes recount, using their second choice, or third choice when their second choice is also a city that has been eliminated (B or C). After the recount, A has 55 votes and D has 45 votes. So A is the winner.
You are required to write a program to solve this problem. Since this exercise is on STL queue handling, the ranking of candidates found in a ballot should be organized as a queue. When a candidate is eliminated, the votes for this candidate are to be removed from the queues eventually.
Input
The first line of input is an integer n <= 20 indicating the number of candidates. The next n lines consist of
the names of the candidates, one name per line. Names may be up to 80 characters in length and may
contain any printable characters. After these n lines, up to 1000 lines follow with one line for one ballot.
Each line contains exactly n numbers in the range from 1 to n in some order. The first number is the
candidate of first choice; the second number is the candidate of second choice, and so on.
Sample Input 1
3
London
Paris
Madrid
1 2 3
2 1 3
2 3 1
1 2 3
3 1 2
Sample Input 2
3
London
Paris
Madrid
1 2 3
2 1 3
2 3 1
1 2 3
3 1 2
3 1 2
Output
The Output consists of one line containing either the name of the winner or “no winner” when all
candidates tied.
Sample Output 1 (corresponding to sample input 1)
London
Sample Output 2 (corresponding to sample input 2)
no winner
I was thinking of placing each ranking of each person into one element of vector<int>. Then will check the first int ranking of the person, in order to find out the person's first ranking. Then i will increment the respective country's votes by 1. Hmm but how to go about incrementing the country's votes? Use struct?