92分求助,第一个和第四个测试点错误
查看原帖
92分求助,第一个和第四个测试点错误
223103
苏幕遮楼主2020/8/13 17:26

附代码:

#include <bits/stdc++.h>
using namespace std;
long long int n, c[100005];
long long int m, p1, p2, s1, s2, a, b;
long long int t, p=1000000000;
int main()
{
	cin >> n;
	for (int i=1;i<=n;i++)
	{
		cin >> c[i];
	}
	cin >> m >> p1 >> s1 >> s2;
	c[p1]+=s1;
	for (int i=1;i<=n;i++)
	{
		if (i<m)
		{
			a+=c[i]*(m-i);
		}
		else if (i>m)
		{
			b+=c[i]*(i-m);
		}
	}
	for (int i=1;i<=n;i++)
	{
		p2=i;
		if (p2<m)
		{
			a+=s2*(m-p2);
			if(a-b<=0&&b-a<p)
			{
				p=b-a;
				t=p2;
				
			}
			else if(a-b>=0&&a-b<p)
			{
				p=a-b;
				t=p2;
			}
			a-=s2*(m-p2);
		}
		else if(p2>m)
		{
			b+=s2*(p2-m);
			if(a-b<=0&&b-a<p)
			{
				p=b-a;
				t=p2;
				
			}
			else if(a-b>=0&&a-b<p)
			{
				p=a-b;
				t=p2;
			}
			b-=s2*(p2-m);
		}
		else
		{
			if(a-b<0&&b-a<p)
			{
				p=b-a;
				t=p2;
				
			}
			else if(a-b>0&&a-b<p)
			{
				p=a-b;
				t=p2;
			}			
		}
	}
	cout<<t<<endl;
	return 0;
}

92分,哪里错了?求问大佬

2020/8/13 17:26
加载中...