let split str delim =
  let rec doit s acc =
    match
      try Some (String.index s delim)
      with _ -> None
    with
    | None -> s :: acc
    | Some i ->
        let s1 = String.sub s 0 i in
        let s2 = String.sub s (i + 1) (String.length s - String.length s1 - 1) in
        doit s2 (s1 :: acc)
  in
  List.rev (doit str [])

let pi = 4. *. atan 1.

let degree_to_radian d = (pi *. d /. 180.)

let area a b c = a *. b *. sin c /. 2.

let side_length a b c = sqrt (a *. a +. b *. b -. 2. *. a *. b *. cos c)

let () =
  let l = read_line () in
  match List.map float_of_string (split l ' ') with
  | [] | [_] | _::_::[] -> exit 1
  | a :: b :: c :: _ ->
      let c = degree_to_radian c in
      let s = area a b c in
      let l = a +. b +. side_length a b c in
      let h = b *. sin c in
      Printf.printf "%f\n%f\n%f\n" s l h