#include #include #include #include using namespace std;

int main() { int n, m, p, x, y; cin >> n >> m >> p >> x >> y; vector a(n); for(int i = 0; i < n; i++) { cin >> a[i]; }

int ans = INT_MAX;
for(int i = 0; i < n; i++) {
    int cnt = 0;
    int l = i, r = i;
    while(l >= 0 && r < n && a[r] - a[l] <= m) {
        cnt++;
        l--;
        r++;
    }
    int diff = r - l - 1;
    if(diff % 2 == 1) {
        int mid = (l + r) / 2;
        cnt += min(abs(i - mid), abs(i - mid - 1)) * y;
        cnt += (diff / 2) * x;
    } else {
        int mid = (l + r - 1) / 2;
        cnt += abs(i - mid) * y;
        cnt += (diff / 2) * x;
    }
    ans = min(ans, cnt);
}

cout << ans * p << endl;

return 0;
有 �n 个反应堆每个反应堆都有一个初始危险度 ��a i 。可以进行多次反应操作每次反应操作如下:在反应堆中选择长度不超过 �p 的区间 ��lr 内的所有反应堆进行反应。则所有反应堆的危险度都将减少 �x所有被选择的反应堆的危险度都将增加 �y其中 �=∑�=��∑�=����−��2y=∑ i=lr ∑ j=lr a i −a j 2旸麦想知道能否使用最少反应操作次数使得满足所有

原文地址: https://www.cveoy.top/t/topic/iQCM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录