Contest1030 - 2017級新生周賽(三)A
阿新 • • 發佈:2018-11-11
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); } } } }