Given the program below, I need a function (here "find_lances") that finds and returns all groups of mechs that have exactly n members and weigh up to m tons, while every mech can only occur once per group ("lance").
use strict;
use warnings;
my %mechs;
while (<DATA>)
{
chomp;
my @d = split /\s+/;
$mechs{$d[0]} = { weight => $d[1], fraction => $d[2] };
}
# find all lances with 5 members and 380t weight
my @possible_lances = find_lances (3, 150);
sub find_lances
{
# big ? here
}
__DATA__
Flea 20 clan
Commando 25 clan
UrbanMech 30 clan
Hollander 35 clan
Jenner 35 clan
Raven 35 clan
Wolfhound 35 clan
BlackHawk 50 clan
Hunchback 50 clan
Rifleman 60 clan
Catapult 65 clan
Loki 65 clan
Thor 70 clan
MadCat 75 clan
Gargoyle 80 clan
Victor 80 clan
Zeus 80 clan
Longbow 85 clan
Warhawk 85 clan
Mauler 90 clan
Atlas 100 clan
Given the example above (3 members, 150 t) the result should be:
[
["Flea", "Commando", "Hunchback"],
["Flea", "Commando", "BlackHawk"],
...
]
but not
[
["Flea", "Flea", "Hunchback"],
]
(no Mech is allowed twice in a lance.)
and not
[
["Flea", "Flea", "Atlas"],
]
(to heavy)
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.