
Также ко дню рождения этого замечательного языка мы приурочили публикацию решений победителей в небольшом конкурсе программистов Golf, объявленном 3 октября в рамках митапа Moscow.pm.
Напомним условия задачи:
Найти максимально длинное кольцо, которое можно составить из списка предложенных вам костяшек или вывести 0, если их нельзя закольцевать.
Входные данные: Строка из пар чисел от 0 до 6, разделенных пробелом. Каждая пара — одна костяшка.
Пример: 01 11 12 22 31 32
Данные подаются на STDIN: cat data | golf.pl
Пример ответа: 11 12 22 23 31
Код решения задачи должен был содержать как можно меньше символов. Победителей было трое, мы их уже одарили призами, и сегодня выкладываем на ваш суд их творения.

Денис Евдокимов (110 символов):
#!/usr/bin/perl -lap
$_=0;while(--$^T){@F=sort{$a=reverse$a;rand>0.5?1:-1}@F;$_=$&if"@F"=~/(\d)((\d) \3)*\1/&&length$&>length}
Виталий Дятлов (116 символов):
$><<(gets+$/+$_.reverse).split.permutation.map{|b|b*' '=~/(?!.*(.)(.) .*\2\1)(.)((.) \5)*\3/&&$&||?0}.max_by(&:size)
Тимур Нозадзе (119 символов):
#!/usr/bin/perl -pl
sub c{$_=pop;s/\d\d/c("@_ $&",$'.$`)/eg;$_=pop;$m=$1 if!/(\d)(\d).*\2\1/&/^ ((.)((.) \4)*\2)$/}c$_.reverse;$_=$m//0
И ещё один код от П.Я., который получил приз зрительских симпатий:
#!/usr/bin/ruby -apF
$_='0';$F.permutation{|o|a=d='';o.map{|i|i[d]&&a+=d+i.sub(d,'')+' ';a[0][d=a[-2]]&&a>$_&&$_=a.chop}}