Difference between revisions of "Google Code Jam/Text Messaging Outrage"
Jump to navigation
Jump to search
Tomjaguarpaw (talk | contribs) (Deleting page that hasn't been edited for over 10 years) |
|||
Line 1: | Line 1: | ||
− | == Solution == |
||
− | <haskell> |
||
− | |||
− | main = (enumFromTo (1::Int) <$> readLn) >>= mapM_ go |
||
− | where go i = do |
||
− | [p,k,l] <- map read . words <$> getLine |
||
− | nn <- map read . words <$> getLine |
||
− | printf "Case #%i: %i\n" i (solve k nn) |
||
− | |||
− | solve :: Int -> [Integer] -> Integer |
||
− | solve k l = let rounds = map sum $ chunks k $ sortBy (flip compare) l |
||
− | in sum $ zipWith (*) [1..] rounds |
||
− | chunks n [] = [] |
||
− | chunks n as = bs : chunks n cs where (bs,cs) = splitAt n as |
||
− | |||
− | </haskell> |