32分玄关求调
查看原帖
32分玄关求调
741120
_O__o_楼主2023/10/10 21:58
#include<bits/stdc++.h>

using namespace std;
int n;
int m,p,s1,s2;
int arr[1000001];
signed main(){
	cin >> n;
	for(int i = 1;i <= n;i++)
		cin >> arr[i];
	cin >> m >>      p >>      s1 >>   s2;
	//中立 ↑幸运兵营↑幸运数量↑持有数↑ 
	int ii;
	arr[p] += s1;
	int l,h;
	l = h = 0;
	for(int i = m - 1,j = 1;i > 0;i--,j++){
		l += arr[i] * j;
	}
	for(int i = m + 1,j = 1;i <= n;i++,j++){
		h += arr[i] * j;
	}
	int cz = max(l,h) - min(l,h);
	if(l == h){
		cout << m;
		return 0;
	}
	if(l < h){
		int minn = 0x3f3f3f3f;
		int minn_ = 0;
		for(int i = 1,j = m - 1;i < m;i++,j--){
			if(minn > abs(arr[i] * j + l - h)){
				minn = abs(arr[i] * j + l - h);
				minn_ = i;
			}
		}
		cout << minn_;
	}else{
		int minn = 0x3f3f3f3f;
		int minn_ = 0;
		for(int i = m + 1,j = 1;i <= n;i++,j++){
			if(minn > abs(arr[i] * j + h - l)){
				minn = abs(arr[i] * j + h - l);
				minn_ = i;
			}
		}
		cout << minn_;
	}
	return 0;
}
2023/10/10 21:58
加载中...