#!/usr/bin/perl
# 自然数nのヤング図形を出力する(リスト処理版)
use v5.16;
my $n = 8; # 分割する自然数を設定
sub d {
my ($i, $j) = @_;
map{[$i-$_, $_]} $j..$i>>1; }
my @a = d($n, 1);
for (@a) {
my @r = @$_;
push @a, map{[@$_, @r[1..$#r]]} d
(@r[0, 1]); }
for ([$n], @a) {
say
"$_: " . '[]' x
$_ for sort {$b <=> $a} @$_; say '--------------------------------';
}
IyEvdXNyL2Jpbi9wZXJsCiMg6Ieq54S25pWw772O44Gu44Ok44Oz44Kw5Zuz5b2i44KS5Ye65Yqb44GZ44KLKOODquOCueODiOWHpueQhueJiCkKdXNlIHY1LjE2OwpteSAkbiA9IDg7ICMg5YiG5Ymy44GZ44KL6Ieq54S25pWw44KS6Kit5a6aCgpzdWIgZCB7CiAgbXkgKCRpLCAkaikgPSBAXzsKICBtYXB7WyRpLSRfLCAkX119ICRqLi4kaT4+MTsKfQoKbXkgQGEgPSBkKCRuLCAxKTsKZm9yIChAYSkgewogIG15IEByID0gQCRfOwogIHB1c2ggQGEsIG1hcHtbQCRfLCBAclsxLi4kI3JdXX0gZChAclswLCAxXSk7Cn0KCmZvciAoWyRuXSwgQGEpIHsKICBzYXkgIiRfOiAiIC4gJ1tdJyB4ICRfIGZvciBzb3J0IHskYiA8PT4gJGF9IEAkXzsKICBzYXkgJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJzsKfQ==