RT
#include<iostream>
using namespace std;
#define int long long
int n,m,p[100005],a[100005],b[100005],c[100005],ans=0,qianzhui[100005],cishu[100005];
int before,now,minn=0;
main(){
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>p[i];
for(int i=1;i<=n-1;i++)
cin>>a[i]>>b[i]>>c[i];
before=1;
for(int i=1;i<=m;i++){
now=p[i];
if(before>now)
swap(before,now);
qianzhui[before]++;
qianzhui[now]--;
before=p[i];
}
for(int i=1;i<=n-1;i++){
cishu[i]=cishu[i-1]+qianzhui[i];
if(cishu[i]*a[i]<cishu[i]*b[i]+c[i])
minn+=cishu[i]*a[i];
else
minn+=cishu[i]*b[i]+c[i];
}
cout<<minn;
return 0;
}
感觉每个点都没什么问题啊