题目链接
题目大意:
在东西方向延伸的直线上,有N个城市。城市坐标按从西到东递增。
你现在在某个城市里,想去其他所有的城市。移动的方法有以下两种。
一,在直线上按东西方向平移,每移动一个单位距离疲劳值加A
二,直接瞬移到某个坐标,并且疲劳值加B
请使用以上两种方式直到去完其他所有的城市,并求出最小的疲劳值。
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=1e5+10;
ll X[maxn];
ll n,a,b;
int main()
{
scanf("%lld%lld%lld",&n,&a,&b);
for(int i=1;i<=n;i++)
scanf("%lld",&X[i]);
ll ans=0;
for(int i=2;i<=n;i++)
{
ans+=min((X[i]-X[i-1])*a,b);
}
printf("%lld\n",ans);
}