lg p3406���׸���

һ��ɵ���⣬ֱ��ǰ׺��+��֣�ֱ���ϴ���

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
long long n,num[10000055];
struct {
long long x,y,z;
}a[10000055];
long long sum[10000055];
long long ans;
long long m;
int main(){
cin>>m>>n;
for(long long i=1;i<=n;i++){
scanf("%d",&num[i]);
}
for(long long i=1;i<=n-1;i++){
long long minn=min(num[i],num[i+1]);
long long maxn=max(num[i],num[i+1]);
sum[minn]++;
sum[maxn]--;
}
for(long long i=1;i<=m;i++){
num[i]=num[i-1]+sum[i];
}
for(long long i=1;i<=m-1;i++){
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
ans+=min(a[i].x*num[i],a[i].z+a[i].y*num[i]);
}
cout<<ans<<endl;
return 0;
}