80pts求调
查看原帖
80pts求调
635711
linshangyun楼主2024/10/5 11:59
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6;
long long a[N];
long long n;
long long m, s1, p1;
long long p2, s2;
int main () {
	cin >> n;
	for (long long i = 0; i < n; i++) {
		cin >> a[i];
	}
	cin >> m >> p1 >> s1 >> s2;
	p2 = m;
	a[p1-1] += s1;
	int lo = 0, hu = 0;
	for (long long i = 0; i < m-1; i++) {
		lo += a[i]*(m-i-1);
	}
	for (long long i = m; i < n; i++) {
		hu += a[i]*(i+1-m); 
	}
	long long minn = abs(lo-hu);
	if (lo > hu) {
		
		for (long long i = m; i < n; i++) {
			hu += s2*(i+1-m);
			int cha = abs(lo-hu);
			if (cha < minn) {
				minn = cha;
				p2 = i+1;
			}
			hu -= s2*(i+1-m);
		}
	} else if (lo < hu) {
		
		for (long long i = 0; i < m-1; i++) {
			
			lo += s2*(m-i-1);
			int cha = abs(lo-hu);
			if (cha < minn) {
				minn = cha;
				p2 = i+1;
			}
			lo -= s2*(m-i-1);
		}
	}
	cout << p2;
	return 0;
}
2024/10/5 11:59
加载中...