80分最后五个点WA,求助
查看原帖
80分最后五个点WA,求助
551088
FincheuwYggdrasil楼主2022/10/7 11:10
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e5+10;
int n,m,p1,s1,s2,p2,mins = INT_MAX;
int man1,man2;
int sold[MAXN];
int main()
{
	scanf("%d",&n);
	for(int i = 1;i <= n;i++)
		scanf("%d",&sold[i]);
	scanf("%d%d%d%d",&m,&p1,&s1,&s2);
	sold[p1] += s1;
	for(int i = 1;i < m;i++)
		man1 += (m - i) * sold[i];
	for(int i = m + 1;i <= n;i++)
		man2 += (i - m) * sold[i];
	for(int i = 1;i <= n;i++)
	{
		if(i < m)
		{
			int man1up = (m - i) * s2;
			if(mins > abs(man1 - man2 + man1up))
			{
				p2 = i;
				mins = abs(man1 - man2 + man1up);
			}
		}
		if(i == m)
		{
			if(mins > abs(man1 - man2))
			{
				p2 = i;
				mins = abs(man1 - man2);
			}
		}
		if(i > m)
		{
			int man2up = (i - m) * s2;
			if(mins > abs(man2 - man1 + man2up))
			{
				p2 = i;
				mins = abs(man2 - man1 + man2up);
			}
		}
	}
	printf("%d",p2);
 	return 0;
}

2022/10/7 11:10
加载中...