#! /usr/bin/perl # # Block voter testing program Eurovision 2007 # Copyright 2007-05-14 Henrik Herranen # This is not good Perl. It may work, and it may not. Use as you wish. # Points come from Wikipedia. Hope they are right. # $voters = 42; $votees = 24; $voter[ 0]="Albania"; $voter[ 1]="Andorra"; $voter[ 2]="Armenia"; $voter[ 3]="Austria"; $voter[ 4]="Belarus"; $voter[ 5]="Belgium"; $voter[ 6]="Bosnia-Herzegovina"; $voter[ 7]="Bulgaria"; $voter[ 8]="Croatia"; $voter[ 9]="Cyprus"; $voter[10]="Czech Republic"; $voter[11]="Denmark"; $voter[12]="Estonia"; $voter[13]="Finland"; $voter[14]="France"; $voter[15]="FYR Macedonia"; $voter[16]="Georgia"; $voter[17]="Germany"; $voter[18]="Greece"; $voter[19]="Hungary"; $voter[20]="Iceland"; $voter[21]="Ireland"; $voter[22]="Israel"; $voter[23]="Latvia"; $voter[24]="Lithuania"; $voter[25]="Malta"; $voter[26]="Moldova"; $voter[27]="Montenegro"; $voter[28]="Norway"; $voter[29]="Poland"; $voter[30]="Portugal"; $voter[31]="Romania"; $voter[32]="Russia"; $voter[33]="Serbia"; $voter[34]="Slovenia"; $voter[35]="Spain"; $voter[36]="Sweden"; $voter[37]="Switzerland"; $voter[38]="Netherlands"; $voter[39]="Turkey"; $voter[40]="Ukraine"; $voter[41]="United Kingdom"; $votee[ 0]="Serbia"; $votee[ 1]="Ukraine"; $votee[ 2]="Russia"; $votee[ 3]="Turkey"; $votee[ 4]="Bulgaria"; $votee[ 5]="Belarus"; $votee[ 6]="Greece"; $votee[ 7]="Armenia"; $votee[ 8]="Hungary"; $votee[ 9]="Moldova"; $votee[10]="Bosnia-Herzegovina"; $votee[11]="Georgia"; $votee[12]="Romania"; $votee[13]="FYR Macedonia"; $votee[14]="Slovenia"; $votee[15]="Latvia"; $votee[16]="Finland"; $votee[17]="Sweden"; $votee[18]="Germany"; $votee[19]="Spain"; $votee[20]="Lithuania"; $votee[21]="France"; $votee[22]="United Kingdom"; $votee[23]="Ireland"; @vote = ( 1, 0, 7, 12, 7, 7, 12, 6, 12, 3, 8, 6, 0, 12, 8, 12, 6, 8, 4, 12, 7, 4, 3, 3, 0, 8, 5, 12, 10, 8, 5, 6, 5, 0, 12, 1, 10, 12, 8, 0, 6, 0, 0, 12, 6, 4, 10, 1, 5, 3, 5, 4, 12, 3, 8, 6, 4, 2, 10, 5, 7, 3, 6, 8, 10, 12, 8, 3, 7, 2, 2, 12, 12, 4, 8, 3, 4, 7, 3, 2, 1, 3, 0, 8, 0, 3, 12, 0, 12, 0, 2, 5, 3, 7, 6, 2, 12, 3, 2, 5, 7, 6, 8, 6, 1, 6, 8, 7, 6, 6, 8, 6, 5, 3, 4, 3, 0, 7, 3, 4, 5, 0, 0, 8, 10, 6, 10, 0, 0, 10, 0, 12, 10, 7, 0, 0, 0, 10, 0, 4, 12, 10, 2, 12, 0, 1, 3, 0, 0, 0, 0, 0, 1, 1, 7, 0, 0, 7, 2, 0, 0, 0, 7, 10, 12, 0, 1, 12, 0, 0, 4, 6, 0, 4, 6, 0, 6, 10, 7, 0, 1, 5, 5, 8, 0, 4, 12, 10, 0, 0, 0, 2, 0, 7, 3, 5, 0, 0, 6, 5, 4, 6, 7, 10, 0, 0, 0, 6, 3, 5, 2, 0, 10, 0, 0, 0, 4, 1, 0, 6, 2, 0, 7, 0, 0, 7, 8, 0, 5, 4, 4, 0, 12, 8, 7, 10, 10, 3, 0, 7, 1, 1, 12, 2, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 8, 0, 3, 8, 3, 12, 0, 12, 3, 1, 0, 0, 3, 3, 4, 10, 0, 7, 5, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 10, 0, 4, 0, 2, 4, 4, 5, 4, 0, 10, 0, 0, 0, 5, 5, 10, 0, 8, 0, 8, 10, 0, 0, 0, 10, 0, 12, 2, 6, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 10, 0, 0, 10, 0, 0, 8, 0, 0, 10, 12, 5, 0, 0, 6, 0, 2, 0, 5, 0, 0, 4, 0, 0, 8, 4, 10, 0, 0, 5, 7, 0, 0, 8, 5, 0, 5, 4, 1, 0, 0, 8, 2, 2, 8, 0, 12, 5, 0, 8, 3, 4, 0, 0, 2, 0, 4, 3, 0, 8, 0, 0, 4, 0, 2, 0, 0, 0, 2, 0, 1, 3, 0, 10, 5, 0, 2, 4, 0, 2, 0, 0, 0, 1, 6, 10, 12, 6, 1, 1, 6, 2, 0, 0, 7, 7, 0, 8, 0, 1, 8, 0, 0, 0, 0, 10, 0, 4, 7, 0, 0, 1, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 0, 0, 0, 0, 8, 8, 0, 6, 8, 7, 10, 0, 0, 0, 0, 5, 0, 6, 6, 1, 0, 2, 1, 1, 0, 5, 7, 0, 0, 0, 0, 3, 2, 0, 1, 6, 6, 12, 0, 4, 0, 0, 5, 0, 0, 7, 0, 2, 0, 0, 0, 2, 5, 8, 0, 0, 10, 0, 3, 0, 0, 0, 2, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 2, 8, 0, 3, 7, 1, 0, 0, 12, 0, 0, 0, 7, 0, 1, 0, 0, 12, 0, 0, 0, 2, 2, 0, 3, 0, 0, 1, 0, 0, 8, 10, 8, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 10, 10, 0, 0, 6, 0, 1, 0, 0, 0, 0, 0, 0, 4, 2, 7, 0, 7, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 4, 1, 5, 0, 8, 0, 4, 3, 0, 3, 5, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 10, 4, 0, 0, 3, 1, 0, 2, 0, 0, 6, 0, 0, 0, 3, 0, 0, 4, 0, 7, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 1, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 8, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 5, 0, 7, 0, 0, 0, 0, 0, 0, 0, 5, 3, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 7, 6, 0, 0, 1, 12, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 2, 0, 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ); # All in. #$activeVoters = "111111111111111111111111111111111111111111"; # Warsaw Pact out $activeVoters = "010101000101011001101110010010100001111101"; # Only Warsaw Pact #$activeVoters = "101010111010100110010001101101011110000010"; if (length($activeVoters) != $voters) { printf("\$activeVoters != $voters\n"); die; } for ($i=0; $i<$voters; $i++) { if (substr($activeVoters, $i, 1) != 0) { printf("YES: $voter[$i]\n"); for ($j=0; $j<$votees; $j++) { $sum[$j] += $vote[$i+$j*$voters]; } } else { printf("NO: $voter[$i]\n"); } } for ($j=0; $j<$votees; $j++) { # printf("%2d: %3d %s\n", $j+1, $sum[$j], $votee[$j]); $toSort{sprintf("%06d", $sum[$j]*1000+$j)} = $votee[$j]; } $j = 0; for (reverse(sort(keys(%toSort)))) { printf("%2d: %3d %s\n", $j+1, $_/1000, $toSort{$_}); $j++; }