next if $c->{NonCont};
$c->{Total} = 0;
$c->{Total} += $_->{Weight} foreach @{ $c->{Votes} };
- prf "candidate %-10s: %10s votes\n", $cand, $c->{Total};
$c->{History}[$stage-1] = $c->{Total};
}
+
+ foreach my $c (reverse sort total_history_cmp values %cands) {
+ prf "candidate %-10s: %10s votes\n", $c->{Cand}, $c->{Total};
+ }
}
sub computequota () {
$c->{NonCont} = 'Elected';
}
-$stage = 1;
-
-sortballots @allvotes;
-countballots();
-computequota();
+$stage = 0;
for (;;) {
$stage++;
+ sortballots @allvotes if $stage == 1;
+
my $seats_remain = $seats
- grep { ($_->{NonCont} // '') eq 'Elected' } values %cands;
if (continuing() <= $seats_remain) {
countballots();
+ computequota if $stage == 1;
+
my $c = select_best_worst
sub { $_->{Total} >= $quota },
sub { $_ > $quota },