Готовая программа

#!/usr/bin/perl

use warnings;

sub solve
{
	my $b=pop @_;
	my @a=map {$_-1} @_;
	my @x;

	my $re='^';
	$re.="(Q*)\\$_\{".$a[$_-1].'}' for 1..@a;
	$re.='$';

	if(('Q' x $b)=~m/$re/)
	{
		push @x, length ${$_} for 1..@a;
	}
	return @x;
}

die "$0: Требуется несколько положительных чисел в командной строке!\n"
	unless(@ARGV);

die "$0: Не могу решить уравнение!\n" unless my @solution=solve(@ARGV);
print "@solution\n";
Информатика-54© А. Н. Швец