Problem:
Score : 100 points

Problem Statement

You are parking at a parking lot. You can choose from the following two fee plans:

Plan 1: The fee will be A×T yen (the currency of Japan) when you park for T hours.

Plan 2: The fee will be B yen, regardless of the duration.

Find the minimum fee when you park for N hours.

Constraints

1≤N≤20

1≤A≤100

1≤B≤2000

All input values are integers.

Input

Input is given from Standard Input in the following format:

N A B

Output

When the minimum fee is x yen, print the value of x.

Sample Input 1

7 17 120

Sample Output 1

119

If you choose Plan 1, the fee will be 7×17=119 yen.

If you choose Plan 2, the fee will be 120 yen.

Thus, the minimum fee is 119 yen.

Sample Input 2

5 20 100

Sample Output 2

100

The fee might be the same in the two plans.

Sample Input 3

6 18 100

Sample Output 3

100

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Runtime Error)

import java.util.Scanner;
public class Main{
	public static void main(String args[]) {
		AtCoder1();
	}

	public static void AtCoder1(){
		 Scanner scanner = new Scanner(System.in);
		int shopNum = Integer.parseInt(scanner.next());
		int isOpen[][] = new int[shopNum][10];
		boolean myOpen[] = new boolean[10];
		int matchNum[] = new int[shopNum];
		int profit[][] = new int[shopNum][11];
		int max=0;
		for(int i=0;i<shopNum*10;i++){
			isOpen[i/10][i%10] = Integer.parseInt(scanner.next());
		}
		System.out.println();
		for(int i=0;i<shopNum*11;i++){
			profit[i/11][i%11] = Integer.parseInt(scanner.next());
		}
		for(int i=1;i<1024;i++){
			int sum=0;
			for(int j=0;j<shopNum;j++){
				matchNum[j]=0;
			}
		        int by = i;
			for(int j=9;j>=0;j--){
				if(by>((int)(Math.pow(2, j)))){
					by = by - (int)(Math.pow(2, j));
					myOpen[j] = true;
				}
				else{
					myOpen[j] = false;
				}
			}
			for(int j=0;j<shopNum;j++){
				for(int k=0;k<10;k++){
					if(myOpen[k])
						matchNum[j] += isOpen[j][k];
				}
			}
			for(int j=0;j<shopNum;j++){
				sum += profit[j][matchNum[j]];
			}
			if(i==1){
				max = sum;
			}
			if(max<sum){
				max = sum;
			}
		}
		System.out.println(max);

	}
}