f = g 0 [] where
g acc _ [] = acc
g acc [] (x:xs) = g acc [x] xs
g acc ys
(x:xs
) = if x
> head ys
then g
(acc
+ q
) (x :
map (`
max` x
) ys
) xs
else g acc (x:ys) xs
where
ZiA9IGcgMCBbXSB3aGVyZQogIGcgYWNjIF8gIFtdICAgICA9IGFjYwogIGcgYWNjIFtdICh4OnhzKSA9IGcgYWNjIFt4XSB4cwogIGcgYWNjIHlzICh4OnhzKSA9IGlmIHggPiBoZWFkIHlzCiAgICB0aGVuIGcgKGFjYyArIHEpICh4IDogbWFwIChgbWF4YCB4KSB5cykgeHMKICAgIGVsc2UgZyBhY2MgKHg6eXMpIHhzCiAgIHdoZXJlCiAgICBxID0gc3VtICQgZmlsdGVyICg+IDApICQgbWFwICh4IGBtaW5gIGxhc3QgeXMgLSkgeXMKCm1haW4gPSByZWFkTG4gPj49IChwcmludCAuIGYp