描述
一個特別的單行街道在每公里處有一個汽車站。顧客根據他們乘坐汽車的公里使來付費。例如樣例的第一行就是一個費用的單子。
沒有一輛車子行駛超過10公里,一個顧客打算行駛n公里(1<=n<=100),它可以通過無限次的換車來完成旅程。最後要求費用最少。
輸入格式
第一行十個整數分別表示行走1到10公里的費用(<=500)。注意這些數並無實際的經濟意義,即行駛10公里費用可能比行駛一公里少。
第二行一個整數n表示,旅客的總路程數。
輸出格式
僅一個整數表示最少費用。
測試樣例1
輸入
12 21 31 40 49 58 69 79 90 101
15
輸出
147
import java.util.Scanner;
public class Main {
private static int n;
private static int[] arr;
private static int[] dp;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
arr=new int[11];
for(int i=1;i<=10;i++){
arr[i]=sc.nextInt();
}
n=sc.nextInt();
dp=new int[n+1];
for(int i=1;i<=n;i++){
if(i<=10){
dp[i]=arr[i];
}else{
dp[i]=Integer.MAX_VALUE;
}
for(int j=1;j<=i/2;j++){
dp[i]=Math.min(dp[i],dp[i-j]+dp[j]);
}
}
System.out.println(dp[n]);
}
}