#**************************************************************#
#********************
ACSL Int Division #1 ********************#
#************************
John Espejo *************************#
#***********************
Conrad Wieser ************************#
#***********************
Robesonia, PA ************************#
#***************************
Perl *****************************#
#**************************************************************#
use
POSIX;
@p1
= qw/1 .2 .3 .47 .56 1.5 1.75/;
#Price
@p2
= qw/1 .0625 .0625 .0625 .0625 .5 .5/;
while
(1)
{
(@n, $i) = (undef, undef); #Resets variables
@n = split /[,\s]+/, <stdin>; #Line input
if (24 <= $n[0] || 18 < $n[1] || .5
< $n[2]) #Package
{
$n[4] = $n[0] + 2 * $n[1] + 2 * $n[2];
if (0 < $n[4] && $n[4]
<= 84) {$i = 5;} #Package
elsif (84 < $n[4] && $n[4]
< 130) {$i = 6;} #Large package
}
elsif (.007 <= $n[2] && $n[2]
<= .016) #Checks thickness
{
if (3.5 <= $n[0] && $n[0]
<= 4.25) #Checks length
{ #Checks height
$i = 1 if (3.5 <= $n[1] &&
$n[1] <= 6); #Regular post card
}
elsif (4.25 < $n[0] &&
$n[0] < 6)
{
$i = 2 if (6 < $n[1] &&
$n[1] < 11.5); #Large post card
}
}
elsif (.016 < $n[2] && $n[2]
< .25)
{
if (3.5 <= $n[0] && $n[0]
<= 6.125)
{
$i = 3 if (5 <= $n[1]
&& $n[1] <= 11.5);
#Envelope
}
}
elsif (.25 <= $n[2] && $n[2]
<= .5)
{
if (6.125 < $n[0] && $n[0]
< 24)
{
$i = 4 if (11 <= $n[1]
&& $n[1] <= 18); #Large
Envelop
}
}
$n[5] = $p1[$i] * ceil($n[3] /
$p2[$i]); #Calculates price
printf $i && $n[0] &&
$n[1] && $n[2] && $n[3] ?
#Prints price
"%.2f \n\n" :
"UNMAILABLE\n\n", $n[5];
}