64 分!有用必关!
查看原帖
64 分!有用必关!
1433769
CCY20130127楼主2025/7/2 21:49
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5+10;
int n, a[N], m, p1, s1, s2;
/*
inline int read() {
	int x = 0, f = 1;
	char ch = getchar();
	while (ch < '0' || ch > '9') {
		if (ch == '-')
			f = -1;
		ch = getchar();
	}
	while (ch >= '0' && ch <= '9') {
		x = (x << 3) + (x << 1) + (ch ^ 48);
		ch = getchar();
	}
	return x * f;
}
inline void write(int x) {
	if (x < 0) {
		putchar('-');
		x = -x;
	}
	if (x > 9)
		write(x / 10);
	putchar(x % 10 + '0');
}
*/
signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> n;
	int a1 = 0, a2 = 0;
	for (int i = 1; i <= n; i++) cin >> a[i];
	cin >> m >> p1 >> s1 >> s2;
	for (int i = 1; i < m; i++) a1 += (m - i) * a[i];
	for (int i = m + 1; i <= n; i++) a2 += (i - m) * a[i];
	if (p1 < m) a1 += s1*(m - p1);
	else a2 += s1*(p1 - m);
	int minn = INT_MAX, ans = 0;
	if (a1 > a2) {
		for (int i = m + 1; i <= n; i++) {
			int k = s2*(i - m);
			if (abs(a2 + k - a1) < minn) {
				minn = abs(a2 + k - a1);
				ans = i;
			}
		}
	} else {
		for (int i = 1; i < m; i++) {
			int k = s2*(m - i);
			if (abs(a1 + k - a2) < minn) {
				minn = abs(a1 + k - a2);
				ans = i;
			}
		}
	}
	cout << ans << "\n";
	return 0;
}
2025/7/2 21:49
加载中...