Sasha is a very happy guy, that’s why he is always on the move. There are cities in the country where Sasha lives. They are all located on one straight line, and for convenience, they are numbered from to in increasing order. The distance between any two adjacent cities is equal to kilometer. Since all roads in the country are directed, it’s possible to reach the city from the city only if .
Once Sasha decided to go on a trip around the country and to visit all cities. He will move with the help of his car, Cheetah-2677. The tank capacity of this model is liters, and it spends exactly liter of fuel for kilometer of the way. At the beginning of the journey, the tank is empty. Sasha is located in the city with the number and wants to get to the city with the number . There is a gas station in each city. In the -th city, the price of liter of fuel is dollars. It is obvious that at any moment of time, the tank can contain at most liters of fuel.
Sasha doesn’t like to waste money, that’s why he wants to know what is the minimum amount of money is needed to finish the trip if he can buy fuel in any city he wants. Help him to figure it out!
Input
The first line contains two integers and (, ) — the number of cities in the country and the capacity of the tank
outup
Print one integer — the minimum amount of money that is needed to finish the trip.
Input
4 2
Output
4
Input
7 6
Output
6
大概思路就是从第一个城市开始走 首先查看油量是否足够走完以后所有城市 不够加满 直到到达其中一个城市加入油量刚好走完后面的城市
在这里#include<stdio.h>
using namespace std;
int main()
{
int n,v;
while(scanf("%d%d",&n,&v)!=EOF)
{
int a[n],c=1;
for(int i=0;i<n;i++)
{
a[i]=c;
c++;
}
int x=0,way=n-1 ,gass =0; //price least way station
for( int i=0;gass<way;i++,way=n-i-1)
{
way=n-i-1;
while(gass<v)
{
gass++,x+=a[i];
if(gass==way)
break;
}
if(gass==way)
break;
gass--;
}
printf("%d",x);
}
} 插入代码片
Sasha计划驾车穿越国家,访问所有城市。每个城市间的距离相等,且所有道路都是单向的。Sasha的车辆每行驶一公里消耗一定量的燃料,油箱容量有限。每个城市设有加油站,燃料价格不一。本篇探讨如何在Sasha的旅程中,通过最优加油策略,以最少的花费完成全程。
371

被折叠的 条评论
为什么被折叠?



