60分求助
查看原帖
60分求助
855781
封禁用户楼主2023/9/26 20:31
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
long long n,m,p[N],diff[N],a[N],b[N],c[N],num[N];
int 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];
	}
	for(int i=1;i<=m-1;i++){
		int l=min(p[i],p[i+1]);
		int r=max(p[i],p[i+1]);
		diff[l]++;
		diff[r]--; 
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		num[i]=num[i-1]+diff[i];
		ans+=min(a[i]*num[i],c[i]+b[i]*num[i]);
	}
	cout<<ans;
}
2023/9/26 20:31
加载中...