0pts求调qwq
查看原帖
0pts求调qwq
1559398
WA_csp_noip楼主2024/12/20 22:51
#include <stdio.h>
#include <algorithm>
#define ll long long
using namespace std;

const int N = 2e5 + 10;
int n, l, r, a[N];
ll s[N], m[N];	//前缀和, 前缀最小值(i * l - s[i]) 

int main() {
	scanf("%d%d%d", &n, &l, &r);
	for (int i = 1; i <= n; i++) {
		scanf("%d", &a[i]);
		s[i] = s[i - 1] + a[i];
	}
	m[0] = 1e18;
	for (int i = 1; i <= n; i++)
		m[i] = min(m[i - 1], 1LL * i * l - s[i]);
	ll ans = s[n];
	for (int i = 1; i <= n + 1; i++)
		ans = min(ans, 1LL * (n - i + 1) * r + s[i - 1] + m[i - 1]);
	printf("%lld", ans);
}
2024/12/20 22:51
加载中...