Submission #32164


Source Code Expand

Copy
import Control.Arrow
writeLineA = Kleisli print
readLineA = Kleisli (\x -> getLine)

funcPair :: (a -> b) -> (a -> c) -> (a -> (b, c))
funcPair f g = \x -> (f x, g x)

uncFP :: (b -> c -> d) -> (a -> b) -> (a -> c) -> (a -> d)
uncFP op f g = uncurry op . funcPair f g

average :: [Double] -> Double
-- average xs = sum xs / (fromIntegral . length) xs
average = uncurry (/) . funcPair sum (fromIntegral . length)

score :: Char -> Double
score 'A' = 4
score 'B' = 3
score 'C' = 2
score 'D' = 1
score 'F' = 0

solve :: String -> Double
solve = average . map score 

mainA = readLineA >>> readLineA >>> arr solve >>> writeLineA
main = runKleisli mainA ()

Submission Info

Submission Time
Task A - GPA計算
User majiang
Language Haskell (GHC 7.4.1)
Score 100
Code Size 680 Byte
Status AC
Exec Time 57 ms
Memory 1408 KB

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 32
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 02_rndmax_01.txt, 02_rndmax_02.txt, 02_rndmax_03.txt, 02_rndmax_04.txt, 02_rndmax_05.txt, 02_rndmax_06.txt, 02_rndmax_07.txt, 02_rndmax_08.txt, 02_rndmax_09.txt, 02_rndmax_10.txt, 03_mini_01.txt, 03_mini_02.txt, 03_mini_03.txt, 03_mini_04.txt, 03_mini_05.txt, 04_samemax_01.txt, 04_samemax_02.txt, 04_samemax_03.txt, 04_samemax_04.txt, 04_samemax_05.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 57 ms 1364 KB
00_sample_02.txt AC 26 ms 1128 KB
01_rnd_01.txt AC 26 ms 1268 KB
01_rnd_02.txt AC 27 ms 1264 KB
01_rnd_03.txt AC 26 ms 1260 KB
01_rnd_04.txt AC 28 ms 1252 KB
01_rnd_05.txt AC 27 ms 1400 KB
01_rnd_06.txt AC 27 ms 1284 KB
01_rnd_07.txt AC 26 ms 1248 KB
01_rnd_08.txt AC 26 ms 1264 KB
01_rnd_09.txt AC 27 ms 1284 KB
01_rnd_10.txt AC 29 ms 1272 KB
02_rndmax_01.txt AC 26 ms 1260 KB
02_rndmax_02.txt AC 28 ms 1264 KB
02_rndmax_03.txt AC 29 ms 1260 KB
02_rndmax_04.txt AC 27 ms 1404 KB
02_rndmax_05.txt AC 29 ms 1268 KB
02_rndmax_06.txt AC 27 ms 1260 KB
02_rndmax_07.txt AC 27 ms 1252 KB
02_rndmax_08.txt AC 29 ms 1280 KB
02_rndmax_09.txt AC 29 ms 1256 KB
02_rndmax_10.txt AC 27 ms 1408 KB
03_mini_01.txt AC 29 ms 1256 KB
03_mini_02.txt AC 28 ms 1236 KB
03_mini_03.txt AC 30 ms 1292 KB
03_mini_04.txt AC 28 ms 1292 KB
03_mini_05.txt AC 27 ms 1128 KB
04_samemax_01.txt AC 27 ms 1396 KB
04_samemax_02.txt AC 28 ms 1252 KB
04_samemax_03.txt AC 27 ms 1408 KB
04_samemax_04.txt AC 28 ms 1264 KB
04_samemax_05.txt AC 26 ms 1140 KB