样例结果正确
#include<stdio.h>
long long p[100005]={0};
long long w[100005]={0};
int min(long long t,long long y);
int max(long long t,long long y);
int main()
{
long long n,m;
long long mon=0;
long long a,b,c;
long long i;
scanf("%lld %lld",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%lld",&p[i]);
}
for(i=2;i<=m;i++)
{
w[min(p[i],p[i-1])]++;
w[max(p[i],p[i-1])]--;
}
for(i=2;i<=m;i++)
{
w[i]+=w[i-1];
}
for(i=1;i<n;i++)
{
scanf("%lld %lld %lld",&a,&b,&c);
mon+=min(a*w[i],c+b*w[i]);
}
printf("%lld",mon);
return 0;
}
int min(long long t,long long y)
{
if(t>y)
{
return y;
}
else
{
return t;
}
}
int max(long long t,long long y)
{
if(t>=y)
{
return t;
}
else
{
return y;
}
}