import qualified Data.List as List import qualified Data.Map as Map import Data.Char import Data.Array import Data.Maybe import Control.Monad import Control.Applicative import Text.Printf import System.IO readInt :: String -> Int readInt = read solve [] = (0, []) solve [(x, i)] = (x, [i]) solve vs = let (m, _) = maximum vs in let js = List.findIndices (\(v, _) -> v == m) vs in maximum [ (val, ds) | j <- js , let (v, i) = vs !! j , let vs' = (take (j - 1) vs ++ drop (j + 2) vs) , let (val', ds') = solve vs' , let val = v + val' , let ds = i : ds' ] main = do n <- fmap readInt getLine vs <- fmap (map readInt . words) getLine let (val, ds) = solve (zip vs [0..]) putStrLn $ show val putStrLn $ unwords $ map show $ map (+1) $ List.sort ds