#include <climits> #include <iostream> #include <vector> using namespace std; int l1, l2, l3, c1, c2, c3; int way(int i){ if(i<=l1) return c1; if(i<=l2) return c2; if(i<=l3) return c3; return INT_MAX; } int main() { cin >> l1 >> l2 >> l3 >> c1 >> c2 >> c3; int a, b; cin >> a >> b; int m = b-a; vector<int> dp(10000); int n; cin >> n; vector<int> vals(n); // 表示从第一个站到其他站的距离 for(int i=1; i<n; i++) cin >> vals[i]; vals[0] = 0; dp[0] = 0; for(int i=a+1; i<=b; i++){ dp[i-a] = dp[i-a-1] + way(vals[i-1] - vals[i-2]); for(int j=i-1; j>=a; j--){ int len = vals[i-1]-vals[j-1]; if(len <= l3) dp[i-a] = min(dp[i-a], dp[j-a]+way(len)); } } cout << dp[m] << endl; return 0; } // 64 位输出请用 printf("%lld")