53 WA on #5~#10,#13,#21~#25 HELP
查看原帖
53 WA on #5~#10,#13,#21~#25 HELP
477821
toolong114514楼主2023/6/20 21:34
#include<iostream>
#include<cmath>
using namespace std;
const long long INF=0x7fffffffffffffff;
long long p[114514];
long long n,m,ans,tmp=INF,p1,s1,s2,q1,q2;
long long llabs(long long x){
	if(x<0) return -x;
	else return x;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>p[i];
	}
	cin>>m>>p1>>s1>>s2;
	for(int i=1;i<m;i++){
		q1+=p[i]*(m-i);
	}
	for(int i=m+1;i<=n;i++){
		q2+=p[i]*(i-m);
	}
	if(p1<m) q1+=s1*(m-p1);
	if(p1>m) q2+=s1*(p1-m);
	for(int i=1;i<=n;i++){
		int t=s2*llabs(i-m);
		if(i<m){
			q1+=t;
			if(llabs(q1-q2)<tmp){
				tmp=llabs(q1-q2);
				ans=i;
			}
			q1-=t;
		}
		if(i>m){
			q2+=t;
			if(llabs(q1-q2)<tmp){
				tmp=llabs(q1-q2);
				ans=i;
			}
			q2-=t;
		}
	} 
	if(q1==q2) cout<<m;
	else cout<<ans;
	return 0;
}
2023/6/20 21:34
加载中...