#!/usr/bin/perl -w

# use List::Util qw(shuffle);
use Algorithm::FastPermute ('permute');
# my @array = (1..shift());
# permute {
#    print "@array\n";         # Print all the permutations
# } @array;


@h= 0..11;   # = @m[0]
# @m[0]= [0..11]  = h[j];
# @m[1][j]= ?  = as[j]
# @m[2]= (5,11,2,12,8,10,9,4,6,3,7,1);
# @as = ?
@r = (4,10,1,11,7,9,8,3,5,2,6,0);

permute {
    @as = @h;     # = @m[1]
    $i++;
    print "\r$i";
    for $j (0..11){
	$b[$j] = $as[$as[$j]]; # = @m[2] 
    }
    if (@b ~~ @r){
	print "\nAmigo secreto:\n";
	for $j (1..12){
	    print "$j -> ",$as[$j-1]+1,"\n";
	}
	exit 0;
    }
} @h;

print "\n¡NO TIENE SOLUCION!\n";

__END__    
Newsgroups: es.ciencia.matematicas
Date: Thu, 26 Dec 2013 15:32:08 -0800 (PST)
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=81.43.122.61; posting-account=ykXa0AoAAACekmaz9eF1PtyhblwrZOQk
NNTP-Posting-Host: 81.43.122.61
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d116d2e0-09d7-46ae-bfd0-f16a1affc536@googlegroups.com>
Subject: bailando con lobas
From: betisista <elenamm2410@gmail.com>
Injection-Date: Thu, 26 Dec 2013 23:32:08 +0000
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Xref: aioe.org es.ciencia.matematicas:17933

Hola:
=20
En un baile hay 12 hombres, n=FAmeros de 1 a 12, y 12 mujeres numeradas, de=
 1 a 12. A cada hombre se le asigna un =93amigo secreto=94 entre los otros =
11. Todos bailaron todas las piezas. En la primera pieza cada hombre bail=
=F3 con la mujer que tiene su mismo n=FAmero. A partir de all=ED, cada homb=
re bail=F3 la nueva pieza con la mujer que hab=EDa bailado la pieza anterio=
r con su amigo secreto.=20
En la tercera pieza las parejas fueron:=20

Hombres   1    2      3    4    5    6    7     8     9     10     11     1=
2=20
Mujeres   5    11     2   12    8   10    9     4     6     3      7      1=
=20
=20
Halla el n=FAmero del amigo secreto de cada hombre

Gracias
