Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 21s
Right-to-left monotonic stack for next-greater-element:
for i = n - 1 downto 0 do
while (match !stack with [] -> false | h :: _ -> h <= arr.(i)) do
stack := List.tl !stack
done;
(match !stack with
| [] -> res.(i) <- -1
| h :: _ -> res.(i) <- h);
stack := arr.(i) :: !stack
done
For [4; 5; 2; 25; 7; 8; 1; 30; 12]:
results: [5; 25; 25; 30; 8; 30; 30; -1; -1]
sum of non-negative = 5+25+25+30+8+30+30 = 153
Tests stack as ref list with match-driven peek, match-as-bool in
while-guard, inline parenthesized match driving <-.
169 baseline programs total.