1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import Data.List import Data.Function import Control.Monad import System.IO average xs = sum xs / fromIntegral (length xs) d4 :: (Fractional t, Ord t) => [t] -> [t] d4 xs | d > difference * 4 = d4 withoutV | otherwise = xs where v = maximumBy (compare `on` (abs . (average xs -))) xs withoutV = delete v xs aveWithoutV = average withoutV difference = average $ map (abs . (aveWithoutV -)) withoutV d = v - aveWithoutV main = do nums <- readNums putStrLn "" putStrLn "--------------------------------------------------" putStrLn "" forM_ (d4 nums) $ \i -> do print i readNums :: (Fractional t, Read t) => IO [t] readNums = do eof <- isEOF if eof then return [] else do line <- getLine case line of "" -> return [] s -> fmap (read s :) readNums |
aW1wb3J0IERhdGEuTGlzdAppbXBvcnQgRGF0YS5GdW5jdGlvbgppbXBvcnQgQ29udHJvbC5Nb25hZAppbXBvcnQgU3lzdGVtLklPCgphdmVyYWdlIHhzID0gc3VtIHhzIC8gZnJvbUludGVncmFsIChsZW5ndGggeHMpCgpkNCA6OiAoRnJhY3Rpb25hbCB0LCBPcmQgdCkgPT4gW3RdIC0+IFt0XQpkNCB4cyB8IGQgPiBkaWZmZXJlbmNlICogNCA9IGQ0IHdpdGhvdXRWCiAgICAgIHwgb3RoZXJ3aXNlID0geHMKICAgIHdoZXJlCiAgICB2ID0gbWF4aW11bUJ5IChjb21wYXJlIGBvbmAgKGFicyAuIChhdmVyYWdlIHhzIC0pKSkgeHMKICAgIHdpdGhvdXRWID0gZGVsZXRlIHYgeHMKICAgIGF2ZVdpdGhvdXRWID0gYXZlcmFnZSB3aXRob3V0VgogICAgZGlmZmVyZW5jZSA9IGF2ZXJhZ2UgJCBtYXAgKGFicyAuIChhdmVXaXRob3V0ViAtKSkgd2l0aG91dFYKICAgIGQgPSB2IC0gYXZlV2l0aG91dFYKCgptYWluID0gZG8KICAgIG51bXMgPC0gcmVhZE51bXMKICAgIHB1dFN0ckxuICIiCiAgICBwdXRTdHJMbiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCiAgICBwdXRTdHJMbiAiIgogICAgZm9yTV8gKGQ0IG51bXMpICQgXGkgLT4gZG8KICAgICAgICBwcmludCBpCgpyZWFkTnVtcyA6OiAoRnJhY3Rpb25hbCB0LCBSZWFkIHQpID0+IElPIFt0XQpyZWFkTnVtcyA9IGRvCiAgICBlb2YgPC0gaXNFT0YKICAgIGlmIGVvZgogICAgICAgIHRoZW4gcmV0dXJuIFtdCiAgICAgICAgZWxzZSBkbwogICAgICAgICAgICBsaW5lIDwtIGdldExpbmUKICAgICAgICAgICAgY2FzZSBsaW5lIG9mCiAgICAgICAgICAgICAgICAiIiAtPiByZXR1cm4gW10KICAgICAgICAgICAgICAgIHMgLT4gZm1hcCAocmVhZCBzIDopIHJlYWROdW1zCg==
-
upload with new input
-
result: Success time: 0.02s memory: 3788 kB returned value: 0
84 69 70 72 73 90 95 77 86 84 87 89 87 86 88 90
-------------------------------------------------- 84.0 69.0 70.0 72.0 73.0 90.0 95.0 77.0 86.0 84.0 87.0 89.0 87.0 86.0 88.0 90.0
-
result: Success time: 0.01s memory: 3788 kB returned value: 0
75 75 76 77 120 76
-------------------------------------------------- 75.0 75.0 76.0 77.0 76.0



