{-# LANGUAGE FlexibleContexts, BangPatterns #-}

module Main where

import Data.Char
import Data.List
import Control.Monad
import Control.Monad.ST
import Data.Array.ST
import Data.Array.Unboxed
import Control.Applicative
import Text.Printf


readInt :: IO Double
readInt = read <$> (input `seq` input)
    where input = do
            !c <- getChar
            if isDigit c || c == '-' || c == '.'
                then (c :) <$> input
                else return []

prints :: [Double] -> IO ()
prints as = putStr $ concat $ intersperse "\n" $ map (printf "%.7f") as

main = prints . f =<< replicateM 3 readInt

f [a,b,c] = let co = cos (c * pi / 180)
                si = sin (c * pi / 180)
            in [a * b * si / 2, a + b + sqrt (a^2 + b^2 - 2*a*b*co), b * si]
