80pt,大佬们求助
查看原帖
80pt,大佬们求助
911439
Nancy_Cherry楼主2023/10/15 15:38

rt

#include <iostream>
#include <cmath>
using namespace std;

const int MAXN = 1e5 + 10;
long long a[MAXN],b[MAXN],ans = 0,flag = 0;

int main() {
	int n;
	int m,p1,s1,s2;
	
	cin >> n;
	for(int i = 1; i <= n; i++) cin >> a[i];
	cin >> m >> p1 >> s1 >> s2;
	flag = m;
	
	a[p1] += s1;
	
	int lo = 0,hu = 0;
	for(int i = 1; i < m; i++) lo += a[i] * (m - i);
	for(int i = m + 1; i <= n; i++) hu += a[i] * (i - m);
	ans = abs(lo - hu);
	
	int loo = lo,huu = hu;
	for(int i = 1; i <= n; i++) {
		if(i < m) {
			lo += s2 * (m - i);
		} else if(i > m){
			hu += s2 * (i - m);
		} 
		else continue;
		
	    if(ans >= abs(lo - hu)) {
	    	flag = i;
			ans = abs(lo - hu);
		}
	    
	    lo = loo;
	    hu = huu;
	}
	
	cout << flag;
	return 0;
}
//3
//1 1 1
//2 3 26 81

回复记得@我

2023/10/15 15:38
加载中...