32分求调
查看原帖
32分求调
936388
Suin_tryin楼主2023/10/19 16:32
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5+10;
int n, m, p1, p2 = N, p3 = N, s1, s2, t;
long long sum1, sum2, minn = 1e18, a[N], s[N], tt;
int main()
{
	cin >> n;
	for(int i = 1; i <= n; i ++) cin >> a[i];
	cin >> m >> p1 >> s1 >> s2;
	for(int i = 1; i <= n; i ++)
	{
		if(i != p1) s[i] = 1ll * abs(m - i) * a[i];
		else s[i] = 1ll * abs(m - i) * (a[i] + s1);
	}
	for(int i = 1; i < m; i ++) sum1 += s[i];
	for(int i = m + 1; i <= n; i ++) sum2 += s[i];
	p2 = abs(sum1 - sum2) / s2;
	minn = abs(sum1 + abs(m - p2) * s2 - sum2);
	p3 = p2 + m;
	if(abs(sum2 + abs(m - p2) * s2 - sum1) < minn && p3 <= n) p2 = p3;
	minn = min(abs(sum2 + abs(m - p2) * s2) - sum1, minn);
	if(s2 == 1 && sum1 < sum2) cout << 1 << endl;
	else if(s2 == 1 && sum1 > sum2) cout << m + 1 << endl;
	else cout << p2 << endl;
	return 0;
}

2023/10/19 16:32
加载中...