有 �n 个反应堆每个反应堆都有一个初始危险度 ��a i 。可以进行多次反应操作每次反应操作如下:在反应堆中选择长度不超过 �p 的区间 ��lr 内的所有反应堆进行反应。则所有反应堆的危险度都将减少 �x所有被选择的反应堆的危险度都将增加 �y其中 �=∑�=��∑�=����−��2y=∑ i=lr ∑ j=lr a i −a j 2旸麦想知道能否使用最少反应操作次数使得满足所有
#include
int main() {
int n, m, p, x, y;
cin >> n >> m >> p >> x >> y;
vector
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;
原文地址: https://www.cveoy.top/t/topic/iQCM 著作权归作者所有。请勿转载和采集!