1. 程式人生 > >Contest1030 - 2017級新生周賽(三)A

Contest1030 - 2017級新生周賽(三)A

1328 Problem  A

題目描述

在實力至上主義的教室中,點數永遠是不變的話題,只有有了足夠的點數,才有可能從D班,晉升至A班。當然對點數影響比較大就是平時的測驗了,現在有一道很關鍵的測驗問題:

給你一個三角形,三個頂點分別是a, b, c, 再給出一個數n和三條邊長,要求總共經過n次頂點,怎樣走可以使走過的邊長最短?如果這道題被答出來了,那麼D班就可以升到C班了,可是D班有的同學可在這個問題上傷腦筋了,你能教教他們如何解決這個問題嗎?

現在可以公開的情報:
    1. 不需要每個頂點都走過
    2. 默認出發點在頂點a

 

輸入

第一行:n-->總共經過頂點的次數
第二行:dis1--> a 頂點到 b 頂點的距離
第三行:dis2--> a 頂點到 c 頂點的距離
第四行:dis3--> b 頂點到 c 頂點的距離
資料範圍均為(1 <= n, dis1, dis2, dis3 <= 100)

 

輸出

一整數,走過的最短距離

 

樣例輸入

3
2
2
1

 

樣例輸出

3
import java.util.Scanner;

public class Foot {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int ab = sc.nextInt();
		int ac = sc.nextInt();
		int bc = sc.nextInt();
		
		int min = Math.min(ab, ac);
		int finmin = Math.min(min, bc);
		
		if(n==1) {
			System.out.println(0);
		}else if(n==2) {
			System.out.println(min);
		}else {
			if(min==finmin) {
				System.out.println((n-1)*min);
			}else {
				System.out.println(min+(n-2)*finmin);
			}
		}
	}
}