Find the optimal sliding door width
Perl, 190 180 154 133 128 117 bytes

includes +1 for -p

use POSIX;$m=1E4;for$q(80,100,120){($m,@z)=($p,$n,ceil$_/$n)if$m&gt;($p=(150,200,220)[$x++]*($n=ceil$_/$q))}$_="@z $m"


Commented:

use POSIX;                                  # for ceil()
$m = 1E4;                                   # init min price to 10k
for $q (80,100,120) {                       # iterate widths
    ($m,@z) = ($p,$n, ceil $_/$n)           # update min, output
    if $m &gt; (                               #
       $p = (150,200,220)[$x++]             # grab price
          * ( $n = ceil $_/$q )             # times nr of doors needed
    )
}
$_="@z $m"





Save 11 bytes by inlining and splitting hash to two arrays
Save 5 bytes by using -p (thanks to @dev-null)
Save 18 bytes by using POSIX::ceil and 3 more by using list syntax for hash (thanks to @msh210)