Acciones

ECCA 1

De Informática de 1º de Matemáticas [Curso 2019-20, Grupo 4]

Revisión del 19:06 12 nov 2019 de Jalonso (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

1 1º concurso con Kattis (6-nov-19)

La relación se encuentra aquí.

2 Ejercicios


2.1 A different problem

Su enunciado está aquí.

main :: IO ()
main = interact resolucion

-- λ> resolucion <$> readFile "sample.in" >>= putStr 
-- 2
-- 71293781685339
-- 12345677654320
resolucion :: String -> String
resolucion = escribeSalida . solucion . leeEntrada

-- λ> leeEntrada <$> readFile "sample.in"
-- [10,12,71293781758123,72784,1,12345677654321]
leeEntrada :: String -> [Integer]
leeEntrada = map read . words

-- λ> solucion [10,12,71293781758123,72784,1,12345677654321]
-- [2,71293781685339,12345677654320]
-- melgonaco
solucion :: [Integer] -> [Integer]
solucion (x:y:zs) = abs (x - y) : solucion zs
solucion _        = []

-- λ> escribeSalida [2,71293781685339,12345677654320]
-- "2\n71293781685339\n12345677654320\n"
escribeSalida :: [Integer] -> String
escribeSalida = unlines . map show

2.2 R2

Su enunciado está aquí.

main :: IO ()
main = interact resolucion

-- λ> resolucion <$> readFile "1.in" >>= putStr
-- 19
-- λ> resolucion <$> readFile "2.in" >>= putStr
-- 2
resolucion :: String -> String
resolucion = escribeSalida . solucion . leeEntrada

-- λ> leeEntrada <$> readFile "1.in"
-- [11,15]
leeEntrada :: String -> [Int]
leeEntrada = map read . words

-- λ> solucion [11,15]
-- 19
-- melgonaco
solucion :: [Int] -> Int
solucion [r1, s] = 2*s - r1

-- λ> escribeSalida 19
-- "19\n"
escribeSalida :: Int -> String
escribeSalida x = show x ++ "\n"

2.3 Cold-puter Science

Su enunciado está aquí

main :: IO ()
main = interact resolucion

-- λ> resolucion <$> readFile "cold-001.in" >>= putStr
-- 1
-- λ> resolucion <$> readFile "cold-002.in" >>= putStr
-- 5
resolucion :: String -> String
resolucion = escribeSalida . solucion . leeEntrada

-- λ> leeEntrada <$> readFile "cold-001.in"
-- [5,-10,15]
leeEntrada :: String -> [Int]
leeEntrada = map read . tail . words

-- λ> solucion [5,-10,15]
-- 1
-- melgonaco
solucion :: [Int] -> Int
solucion xs = length [n | n <- xs, n < 0]


-- λ> escribeSalida 1
-- "1\n"
escribeSalida :: Int -> String
escribeSalida x = show x ++ "\n"