题目描述
小明想从A徒步到B,总路程需要M天,路程中为了确保安全,小明需要每天消耗1份食物。
在起点及路程当中,零星分布着N个补给站,可以补充食物,不同补给站的食物价格可能不同。
请问小明若要安全完成徒步,最少需要花费多少钱呢?
输入描述
第一行为两个正整数M、N,代表总路程M天,补给站个数N
接下来N行,每行有两个非负整数A、B代表一个补给站,表示第A天经过该补给站,每份食物的价格为B元。
A是从0开始严格递增的,即起点一定有补给站,补给站是按位置顺序给出的,且同一个位置最多有一个补给站。
输出描述
输出一个整数,表示最少花费的金额
实例1
输入
5 4
0 2
1 3
2 1
3 2
输出
7
public class Solution2 {
public static void main(String[]args)
{
Scanner in=new Scanner(System.in);
int M=in.nextInt();
int N=in.nextInt();
int[]cost=new int[N];
for(int i=0;i<N;i++)
{
int a=in.nextInt();
int b=in.nextInt();
cost[a]=b;
}
System.out.println(new Solution2().findMinCost(cost,M,N));
}
public int findMinCost(int[]cost,int M,int N)
{
int count=0;
int minPrice=Integer.MAX_VALUE;
int index=0;
for(int i=0;i<N;i++)
{
if(cost[i]<minPrice)
{
minPrice=cost[i];
index=i;
}
M--;
if(M<0)
{
return count;
}
count+=cost[index];
}
if(M>0)
{
count+=(minPrice*M);
}
return count;
}
}