40pts球条,玄关
查看原帖
40pts球条,玄关
1327996
b7892ovo楼主2024/10/24 19:57

这是代码:

#include <iostream>
#include <cmath>
using namespace std;
int main(){
	long long n,m,a[1000],dr=0,ti=0;
	long long p1,s1,s2;
	long long sum,ans;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	cin>>m>>p1>>s1>>s2;
	for(int i=1;i<=n;i++){
		if(i<m){
			dr+=a[i]*(m-i);
		}
		if(i>m){
			ti+=a[i]*(i-m);
		}
	}
	a[p1]+=s1;
	for(int i=1;i<=n;i++){
		if(i==m){
			continue;
		}
		if(i<m){
			dr+=(m-i)*a[i];
			continue;
		}
		ti+=(i-m)*a[i] ;
	}
		ans=abs(dr-ti);
		long long p2=m;
	for (int i=1;i<=n;i++){
		if(i<m){
			long long sum=s2*(m-i);
			if (abs(dr-ti+sum)<ans){
				ans=abs(dr-ti+sum) ;
				p2=i;
			}
		}
		if(i>m){
			int sum=s2*(i-m);
			if(abs(dr-ti-sum)<ans){
			ans=abs(dr-ti-sum);
			p2=i;
			}
		}
	}
	cout<<p2;
}
2024/10/24 19:57
加载中...