Consider the following fragment of code in $\mathrm{C}$ :
\& int $a, b, c$;
...
$\{$ int $d$, e;
$\because$ int $f$
...
?
?
...
?int $g, h, i$;
?
?
Assume that each integer variable occupies four bytes. How much total space is required for the variables in this code? Describe an algorithm that a compiler could use to assign stack frame offsets to the variables of arbitrary nested blocks, in a way that minimizes the total space required.