#!/usr/bin/perl -w

use v5.16;
use strict;

my %weapons = (
'Dagger' => [ qw(       8     4       0 ) ],
'Shortsword' => [ qw(  10     5       0 ) ],
'Warhammer' => [ qw(   25     6       0 ) ],
'Longsword' => [ qw(   40     7       0 ) ],
'Greataxe' => [ qw(    74     8       0 ) ],
);

my %armors = (
'NONE'    => [ qw(      0     0       0 ) ],
'Leather' => [ qw(     13     0       1 ) ],
'Chainmail' => [ qw(   31     0       2 ) ],
'Splintmail' => [ qw(  53     0       3 ) ],
'Bandedmail' => [ qw(  75     0       4 ) ],
'Platemail' => [ qw(  102     0       5 ) ],
);

my %rings = (
'NONE_1'    => [ qw(    0     0       0 ) ],
'NONE_2'    => [ qw(    0     0       0 ) ],
'Damage_+1' => [ qw(   25     1       0 ) ],
'Damage_+2' => [ qw(   50     2       0 ) ],
'Damage_+3' => [ qw(  100     3       0 ) ],
'Defense_+1' => [ qw(  20     0       1 ) ],
'Defense_+2' => [ qw(  40     0       2 ) ],
'Defense_+3' => [ qw(  80     0       3 ) ],
);

my $boss = [ qw(104 8 1) ];

my $minprice;
for my $w (keys %weapons) {
	for my $a (keys %armors) {
		for my $r1 (keys %rings) {
			for my $r2 (keys %rings) {
				next if $r1 eq $r2;
				my $price = $weapons{$w}->[0]
					+ $armors{$a}->[0]
					+ $rings{$r1}->[0]
					+ $rings{$r2}->[0];
				my $damage = $weapons{$w}->[1]
					+ $armors{$a}->[1]
					+ $rings{$r1}->[1]
					+ $rings{$r2}->[1];
				my $armor = $weapons{$w}->[2]
					+ $armors{$a}->[2]
					+ $rings{$r1}->[2]
					+ $rings{$r2}->[2];
				my $pl = $damage - $boss->[2];
				my $bo = $boss->[1] - $armor;
				my ($bosshp, $playerhp) = ($boss->[0], 100);
				while (1) {
					$bosshp -= $pl;
					if ($bosshp <= 0) {
						$minprice = $price if !$minprice || $price < $minprice;
						say "$price $w $a $r1 $r2";
						last;
					}
					$playerhp -= $bo;
					last if ($playerhp <= 0);
				}
			}
		}
	}
}

say $minprice;
			
		
		
	

