import std.algorithm;
import std.array;
import std.conv;
import std.math;
import std.stdio;
import std.string;
import std.range;

int readint() {
    return readln.chomp.to!int;
}

int[] readints() {
    return readln.split.map!(to!int).array;
}

double sq(double d) {
    return d * d;
}

double radians(double deg) {
    return deg * PI / 180;
}

double area(int a, int b, int theta) {
    return 0.5 * a * b * sin(radians(theta));
}

double perimeter(int a, int b, int theta) {
    return a + b + sqrt(sq(a) + sq(b) - 2 * a * b * cos(radians(theta)));
}

void main() {
    auto xs = readints();
    int a = xs[0];
    int b = xs[1];
    int c = xs[2];

    // 2 ??? a, b ??¨?????????????§? c ??????
    // - ??¢??? S
    // - ??¨????????? L
    // - a ???????????¨????????¨???????????? h
    // ????????????????±???????

    double h = b * sin(radians(c));

    writefln("%.6f", area(a, b, c));
    writefln("%.6f", perimeter(a, b, c));
    writefln("%.6f", h);
}