96分?!?
查看原帖
96分?!?
363144
zljhenry楼主2020/11/3 21:06

源代码:

#include<bits/stdc++.h>
using namespace std;
	long long n,m,p1,s1,s2,ls=0,hs=0,c[100011],i,p2;
int main(){
	cin>>n;
	for(i=1;i<=n;i++)
		cin>>c[i];
	cin>>m>>p1>>s1>>s2;
	
	for(i=1;i<m;i++) ls+=abs(m-i)*c[i];
	
	for(i=n;i>m;i--) hs+=abs(i-m)*c[i];
	if(p1>m) hs+=s1*abs(m-p1);
	else if(p1<m) ls+=s1*abs(p1-m);

	
	long long ans=m;
	long long minn=abs((ls+(s2*(m-p2)))-hs);
	for(i=2;i<=n;i++){
		long long xhs=hs;
		long long xls=ls;
		p2=i;
		if(p2<m) xls+=s2*abs(m-p2);
		else if(p2>m) xhs+=s2*abs(p2-m);
		if(abs(xhs-xls)<minn){
			minn=abs(xls-xhs);
			ans=p2;
		}
	}
	cout<<ans;
	return 0;
}

为啥96分球差错,谢谢

2020/11/3 21:06
加载中...