import Text.Printf cPlan t p sp mp = reverse $ f [(0, t) :: (Float, Float)] where f r@((a, b):r') = if b < 0 then (a + b, 0) : r' else f $ (a + mp, b * p + sp - mp) : r main = mapM_ (uncurry (printf "Выплачено: %9.2f | Долг: %9.2f\n")) $ cPlan 40000 1.03 1000 5000