O recente sorteio das quartas de final da Copa do Brasil levantou suspeitas por juntar os clubes por proximidade.
Há 105 possíveis quartas de final (8!/(2!*2!*2!*2!*4!)), mas é mais divertido calcular na linha de comando com grep.
Primeiro, uso o código de combinações para calcular todos os enfrentamentos possíveis (são 28):
my @jogos=qw(AB AC BC AD BD CD AE BE CE DE AF BF CF DF EF AG
BG CG DG EG FG AH BH CH DH EH FH GH AB AC BC AD);
Depois, uso o mesmo código para encontrar todas as combinações de enfrentamentos, mas uso o grep para eliminar as combinações em que um time aparece mais de uma vez:
perl choose.pl | grep -Ev '(\S)(.*\1)'
DE CF BG AH
CE DF BG AH
CD EF BG AH
DE BF CG AH
BE DF CG AH
BD EF CG AH
...
A expressão -E "(\S)(.*\1)" procura por coisas diferentes de espaço que sejam repetidas ao menos uma vez e -v as elimina do resultado.
O resultado são 105 combinações de quartas de final e a combinação específica aparece apenas uma vez (claro):
perl choose.pl | grep -Ev '(\S)(.*\1)' | grep "AB CD EF GH"
AB CD EF GH
Dada a quantidade absurda de jogos a que os jogadores são submetidos no Brasil, organizar os campeonatos por proximidade, a fim de minimizar as viagens, seria uma medida interessante.
