import Numeric

showF :: RealFloat a => a -> String
showF = flip (showFFloat Nothing) ""

readNums :: (Read a, Num a) => IO [a]
readNums = fmap (map read . words) getLine

toRadian d = d / 180 * pi
area a b radC = 1/2 * a * (height a b radC)
cosl a b radC = sqrt $ a^2 + b^2 - 2 * a * b * cos(radC)
height a b radC = b * sin(radC)

main = do
  [a, b, c] <- readNums
  let radc = toRadian c
  let s = area a b radc
  let l = a + b + (cosl a b radc)
  let h = height a b radc
  mapM_ (putStrLn . showF) [s, l, h]