84分求助!!!!
查看原帖
84分求助!!!!
534880
二中_王晨曦楼主2021/9/20 08:18
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

ll n, m, p1, s1, s2, ener1, ener2;
ll camp[100009];

int main()
{
	cin >> n;
	
	for(ll i = 1; i <= n; i++)
	{
		cin >> camp[i];
	}
	
	cin >> m >> p1 >> s1 >> s2;
	
	camp[p1] += s1;
	
	int bj = m;
	
	for(ll i = 1; i < m; i++)
	{
		ener1 += abs(m - i) * camp[i];
		ener2 += abs(i) * camp[m + i];
	}
	
	if(ener1 <= ener2)
	{
		ll com = abs(ener2 - ener1);
		for(ll i = 1; i < m; i++)
		{
			ll ener1x;
			ener1x = ener1 + s2 * abs(m - i);
			if(com > abs(ener2 - ener1x))
			{
				com = abs(ener2 - ener1x);
				bj = i;
			}
		}
	}
	else if(ener1 > ener2)
	{
		ll com = abs(ener2 - ener1);
		for(ll i = m + 1; i <= n; i++)
		{
			ll ener2x;
			ener2x = ener2 + abs(i - m) * s2;
			if(com > abs(ener1 - ener2x))
			{
				com = abs(ener1 - ener2x);
				bj = i;
			}
		}
	}
	
	cout << bj;
	return 0;
}
2021/9/20 08:18
加载中...