Problem:
Triangle

For given two sides of a triangle a and b and the angle C between them, calculate the following properties:

S: Area of the triangle

L: The length of the circumference of the triangle

h: The height of the triangle with side a as a bottom edge

Input

The length of a, the length of b and the angle C are given in integers.

Output

Print S, L and h in a line respectively. The output should not contain an absolute error greater than 10-4.

Sample Input

4 3 90

Sample Output

6.00000000
12.00000000
3.00000000

Solution in JAVA (judge verdict: Wrong Answer)


import java.util.*;
import java.math.*;

public class Main {
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		double a,b,C;
		a = Double.parseDouble(scan.next());
		b = Double.parseDouble(scan.next());
		C = Double.parseDouble(scan.next());
		//?§???????????????¢???????????????toRadians()????????¨
		C = Math.toRadians(C);
		
		//??¢???????±???????
		//??¢??????a * ??????(h) / 2.0
		Double Area = a * (Math.sin(C) * b) / 2.0;
		BigDecimal bd = new BigDecimal(Area);
		//System.out.println(bd.setScale(8, BigDecimal.ROUND_DOWN));
		System.out.println(Area);
		
		//??¨?????????????±???????
		//??????a - (cos(c) * b)???+b??????
		Double length = a + b + Math.sqrt(Math.pow((a - (Math.cos(C) * b)), 2.0) + Math.pow(b, 2.0));
		BigDecimal bd2 = new BigDecimal(length);
		//System.out.println(bd2.setScale(8, BigDecimal.ROUND_DOWN));
		System.out.println(length);
		
		//??????????±???????
		//sin(c) * b
		Double height = Math.sin(C) * b;
		BigDecimal bd3 = new BigDecimal(height);
		//System.out.println(bd3.setScale(8, BigDecimal.ROUND_DOWN));
		System.out.println(height);
		
	}
}