プレゼント交換
http://d.hatena.ne.jp/Nabetani/20061217#p1
via http://d.hatena.ne.jp/sumim/20061220/p1
ゴルフ的にはこんなのとか? 7 人くらいると破綻するみたいだけど。
a=gets.split $$.times{b=a.sort{rand-0.5}.zip a b.all?{|i,j|i[0]!=j[0]}&&$*<<b} p$*.uniq.size
a1 a2 b c が入力されて 4 を、 a1 a2 b c d が入力されて 24 を返すような感じ。
なんか10人くらいでも大丈夫なように、って書いてあったのでマジメに書かないとダメだこりゃな感。