Problem:
Score : 100 points

Problem Statement

There is a right triangle ABC with ∠ABC=90°.

Given the lengths of the three sides, |AB|,|BC| and |CA|, find the area of the right triangle ABC.

It is guaranteed that the area of the triangle ABC is an integer.

Constraints

1 \leq |AB|,|BC|,|CA| \leq 100

All values in input are integers.

The area of the triangle ABC is an integer.

Input

Input is given from Standard Input in the following format:

|AB| |BC| |CA|

Output

Print the area of the triangle ABC.

Sample Input 1

3 4 5

Sample Output 1

6

This triangle has an area of 6.

Sample Input 2

5 12 13

Sample Output 2

30

This triangle has an area of 30.

Sample Input 3

45 28 53

Sample Output 3

630

This triangle has an area of 630.

Solution in Java7 (OpenJDK 1.7.0) (judge verdict: Runtime Error)

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] h = new int[n];
		for(int i = 0; i < n; i++) {
			h[i] = sc.nextInt();
		}
		Garden garden = new Garden(n,h);
		while(garden.gardenFlag()) {
			garden.watering();
		}

		System.out.println(garden.getWaterCount());
		sc.close();
	}
}
class Garden{

	int n;
	int[] f;
	int[] h;
	int waterCount;

	Garden(int n, int[] h){
		this.n = n;
		this.h = h;
		f = new int[n];
		waterCount = 0;
	}
	//waterCount取得
	int getWaterCount() {
		return waterCount;
	}

	//判別
	boolean gardenFlag() {
		boolean flag = false;
		for(int i = 0; i < n; i++) {
			if(f[i] != h[i]) {
				flag = true;//異なっていたら続行
				break;
			}
		}
		return flag;
	}

	//開始地点
	int startPoint() {
		int sp = 0;
		for(int i = 0; i < n; i++) {
			if(f[i] < h[i]) {
				sp = i;
				break;
			}
		}
		System.out.print(sp + " ");
		return sp;
	}
	//終了地点
	int[] endPoint() {
		int[] point = new int[2];
		point[0] = startPoint();
		point[1] = point[0] + 1;

		for(int i = point[0] + 1; i < n; i++) {
			if(f[i] < h[i]) {
				point[1]++;
			}
			if(f[i] == h[i]) {
				break;
			}
		}
		System.out.println(point[1]);
		return point;
	}
	//水やり
	void watering() {
		int[] point = endPoint();
		for(int i = point[0]; i < point[1]; i++) {
			f[i]++;
		}
		waterCount++;

		for(int i = 0; i < n; i++) {
			System.out.print(f[i] + " ");
		}
		System.out.println();
	}
}