#!/usr/local/bin/perl -w $x=$vacioy = $cabe = $insertados=0; $teams = $ARGV[0]; die "I need an even number" if (!defined $teams || $teams%2!=0 || $teams <2); $jornadas = $teams-1; $partidos = $teams /2; for $i (0..$jornadas){ for $j (0..$partidos){ $flagi[$i][$j] = 0; $flagj[$i][$j] = 0; } } while ($insertados<$jornadas*$partidos){ for $i (1..$teams){ for ($j=$i+1;$j<=$teams;$j++){ while (1){ $vacioy=0; $cabe=0; $x++; if ($x>$jornadas){ $x=1; } for ($y=$partidos;$y>=1;$y--){ if ($flagi[$x][$y]==$i && $flagj[$x][$y]==$j){ goto yainsertao; } if ($flagi[$x][$y]==0 && $flagj[$x][$y]==0){ $vacioy=$y; } if ($flagi[$x][$y]!=$i && $flagj[$x][$y]!=$j){ if ($flagi[$x][$y]!=$j && $flagj[$x][$y]!=$i){ $cabe++; } } } if ($cabe==$partidos && $vacioy>0){ $flagi[$x][$vacioy]=$i; $flagj[$x][$vacioy]=$j; $insertados++; last; } } yainsertao: } } } for $i (1..$jornadas){ print "\n$i)\t"; for $j (1..$partidos){ print "$flagi[$i][$j]:$flagj[$i][$j] "; } } printf("\n\n"); exit 0;