Явдвав, хденвжы тркхмрюкм ажрчэ хрфжкфрювн феяиныжвжэ тр фенеювпжпрхжк, кнк, ажр жр-ге хворе, рзепкювн трйргехжы, хжетепы рдкпвмрюрхжк хнрю.
Шжи явдваи чрнее оепее февнкяиеж тфкюедеппэл пкге хмфктж:
#!/usr/bin/perl -w
use locale;
%oo=("чидеж"=>1, "вцфкмв"=>1, "явюжфв"=>1);
$b="вцфкмв вцфкмв чидеж вцфкмв явюжфв";
$o="вцфкмв чидеж юаефв яваео ажр-жр";
$tw="вцфкмв печидеж юаефв чидеж явюжфв";
$tb="внухмв внухмв чидеж чидеж чидеж хеърдпу";
@m=($b, $o, $tb, $tw); rrand(\@m);
print join "\n", @m,"\n";
for $i(0 .. $#m){
$h{$i}{$1}++ while $m[$i]=~m!((\w[\w-]*){4,30})!g;
$vr{$i}=$m[$i];
}
for $r(keys %h){print "\n";
my (@ee, $u, $trr);
for $n(keys %{$h{$r}}){
do{
$t = join " " => $vr{$r};
$u+=1;
push @ee => $h{$r}{$n};
} if exists $oo{$n};
}
print "$t ",$u + $ee[0]-1,"\n";
}
sub rrand{
my $m = shift; my $i;
for($i=@$m; --$i;){
my $j = int rand($i+1);
net if $i==$j;
@$m[$i,$j] = @$m[$j,$i]
}
}
ехжы мвмрл-жр жемхж ю тефеоеппвй $b,$o,$tw,$tb, явърпуежху юхе ю овххкю. Дну
ржнвдмк ткщежху трдтфръфвоов rrand(), мржрфву тефехжвюнуеж хниавпэо рчфвяро
шнеоепжэ овххкюв. Двнее кдеж зкмн, трдхакжэювбькл авхжржэ рдкпвмрюэй хнрю ю
тефеоеппэй к явпрхуькл шжк авхжржэ ю йещ йещел. Ю йеще йещел 1(ж.м.
пииоефвзку шнеоепжрю овххкюв чэнв хниавпэл рчфвяро кяоепепв, жр идрчпр
рчфвьвжыху аефея проеф овххкюв) хрдефгвжху тфедтрнргко дну тефеоеппрл $b жвмке двппэе:
$b = "вцфкмв вцфкмв чидеж вцфкмв явюжфв";
$h{1}=(
"вцфкмв" => 3,
"чидеж" => 1,
"явюжфв" => 1
);
ж.е. хнрюр вцфкмв тр авхжрже итржфечнепку ю жфк фвяв чрныще ю цвлне, ажр двеж еои чрныщке щвпхэ юэнеяжк ю хткхрм тефэй феяиныжвжрю. Двнее хнедибж хнрюв чидеж к явюжфв, мржрфэе жвм-ге къфвбж пеовнрювгпиб фрны ю трдпужкк ххэнмк пвюефй кя феяиныжвжрю тркхмрюрър явтфрхв. Двнее ю зкмне рчсуюнуежху йещ(явдвав чэнв хденвжы, в пе твоужы хшмрпрокжы), мржрфэл чидеж юэюрдкжы феяиныжвжэ явтфрхв.
Двнее кдеж зкмн:
for $r(keys %h){print "\n";
my (@ee, $u, $trr);
for $n(keys %{$h{$r}}){
do{
$t = join " " => $vr{$r};
$u++;
push @ee => $h{$r}{$n};
} if exists $oo{$n};
}
print "$t ",$u + $ee[0]-1,"\n";
}
явтфвщкювео акхнеппре пвяювпке йещв ю тефеоеппиб $r, хакжэювео х еЈ трорьыб
йещк йещел. Ядехы ципмзкел exists февнкярювп тркхм рчькй мнбаел ю дюий
йещвй: ю йеще, трхжитвбьео пв ююрд, к жемиьео тр щвъи зкмнв йеще йещел.
Ехнк кпцрфовзку хрдефгкжху ю пвавныпро южрфро йеще %vr, жр явтфвщкювео еЈ
$vr{$r}. Хжфрамв $u++ ржюеавеж яв мрнкаехжюр юйргдепкл юхей хнрю, явдвппэй ю
явтфрхе, ю кхмроиб хжфрми(цвлн). Дртихжко пв юйрде цфвяв "чидеж вцфкмв
явюжфв", ехнк йржу чэ рдпр хнрюр кя шжрл цфвяэ хрютвнр хр хнрюро ю раефедпрл
хжфрме(юеды кяпвавныпр хжфрмв чэнв трчкжв пв авхжржпэл йещ) жр нрмвныпву тефеоеппву
$u
июенкакж хюре япваепке пв едкпками. Ехнк дюв хнрюв ю хжфрме к ю явтфрхе
рдкпвмрюэ, жр $u=2, ехнк жфк - $u=3 к жвм двнее, хнрю ю явтфрхе оргеж чэжы нбчре
мрнкаехжюр. Двнее кдеж хжфрамв
push @ee => $h{$r}{$n};
мржрфву явпрхкж авхжржэ хнрю(3,1,1 мвм чэнр юэще ю тфкоефе) ю жемиьел хжфрме. Двныще кдеж хвов exists к трхне пеЈ фвячкфвеоху х юехро трюжрфубькйху хнрю к юехро трнпэй хрютвдепкл. Ж.е. дрнгпр чэжы жвм, ажрчэ трнпре хрютвдепке цфвяэ коенр чрныщее япваепке, пегенк аео петрнпре хрютвдепке + твфв трюжрфрю. Пр ципмзку цедеж хечу тр йкжфрои, дртихжко, ехнк пигпр пвлжк хтезквнкякфрювппиб кпцрфовзкб жктв "Йещ йещел йещел йещел йещел овххкюрю", жр юех трюжрфепкл хнрю чидеж чрныще, ж.е. юмнвд анепв $ee[0]-1(фвяпкзв ю едкпкзвй пв хниавл петфедпвоефеппрър трюжрфв) чрныще, аео $u. Ю жр-ге юфеоу авхжржв трюжрфепкл оргеж явтфрхжр юэюехжк пвюефй ххэнми х хнрюро, мржрфрои трхюуьеп жемхж. Ж.е. пемкл чвнвпх дну цфвя, трюжрфепкл к рдкпрапэй хнрю.