http://acm.hdu.edu.cn/showproblem.php?pid=4011
#include<stdio.h>
int main()
{
int N;
int n;
long a,b;
int i,len;
long ti[100005];
long s1,s2,s;
int Case=1,flag=1;
scanf("%d",&N);
while(N--)
{
scanf("%d%ld%ld",&n,&a,&b);
for(i=0;i<n;i++)
{
scanf("%ld",&ti[i]);
}
s1=2*a;
s2=2*a;
s=2*a;
if(n==1)
s+=b;
else
{
for(i=0;i<n-1;i++)
{
len=ti[i+1]-ti[i];
s1+=2*a;//回去的
s2+=b*len;//没回去的
if(s1>s2)
s=s2;
else
{
s=s1;
flag++;//中间耽搁的天数单独列出来了
}
s1=s;
s2=s;
}
s+=flag*b;
}
printf("Case #%d: %ld\n",Case++,s);
flag=1;
}
return 0;
}
不行