-- http://yukicoder.me/problems/836 -- No.347 import Control.Applicative import Data.List type Polyn = [(Double,Double)] diff :: Polyn -> Polyn diff = map (\(factor,pow) -> (pow*factor, pow-1)) -- intg :: Polyn -> Polyn -- intg = map (\(factor,pow) -> let p' = pow + 1 in (factor/p', p')) app :: Double -> Polyn -> Double app x = sum . map (\(f,p) -> f*(x**p)) intg :: Double -> Polyn -> Double intg b = foldl' ( \acc (f,p) -> acc + case p of (-1) -> f*log b _ -> let p' = p+1 in (f/p' * b**p') ) 0 main = do _ <- getLine b <- readLn as <- zip (repeat 1) . map read . words <$> getLine print . app b . diff $ as print . intg b $ as