80分,为什么?
查看原帖
80分,为什么?
1747804
qingfengyaoye楼主2025/7/2 21:39
#include<bits/stdc++.h>
using namespace std;
unsigned long long d,t;
unsigned long long d1,t1;
unsigned long long cha;
unsigned long long cha1=-1; 
int d2;
int chese[100001];
int main(){ 
	int n; 
	cin>>n;
	for(int i=1;i<=n;i++){
		scanf("%d",&chese[i]);
	}
	int m,p1,s1,s2;
	cin>>m>>p1>>s1>>s2;//输入 
	for(int i=1;i<=n;i++){//龙虎原先势力 
		if(i<m){
			d+=abs(i-m)*chese[i];
		}
		else if(i>m){
			t+=abs(i-m)*chese[i];
		}
	}
	if(p1<m){
		d+=abs(p1-m)*s1;
	}
	else if(p1>m){
		t+=abs(p1-m)*s1;
	}
	for(int i=1;i<=n;i++){
		d1=d;
		t1=t;
		if(i<m){
			d1+=abs(i-m)*s2;
		}
		else if(i>m){
			t1+=abs(i-m)*s2;
		}
		cha=max(d1,t1)-min(d1,t1);
		if(cha1==-1){
			cha1=cha;
			d2=i;
		}
		else{
			if(cha<cha1){
				d2=i;
			}
			cha1=min(cha1,cha);
		}
	}
	cout<<d2;
	return 0;
} 
2025/7/2 21:39
加载中...