听灌多
  • 板块灌水区
  • 楼主kamikuQAQ
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/9/8 18:58
  • 上次更新2024/9/8 21:17:18
查看原帖
听灌多
1226065
kamikuQAQ楼主2024/9/8 18:58

RT,龙虎斗44求调(悬2关)

#include<bits/stdc++.h>
using namespace std;
#define int long long
int m,p1,s1,s2;
int n;
int idx;
const int maxn = 1e5+1;
int a[maxn];
int minn=1e18;
int dragon() {
	int qishi=0;
	for(int i=1;i<m;i++){
		qishi+=a[i]*(m-i);
	} 
	return qishi;
}
int tiger() {
	int qishi=0;
	for(int i=m+1;i<=n;i++){
		qishi+=a[i]*(i-m);
	}
	return qishi;
}
signed main() {
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>a[i];
	}
	cin>>m>>p1>>s1>>s2;
	a[p1]+=s1;
	if(dragon()>tiger()) {
		for(int i=m+1;i<=n;i++) {
			a[i]+=s2;
			if(abs(tiger()-dragon())<minn) {
				minn=abs(tiger()-dragon());
				idx=i;
			}
			a[i]-=s2;
		}
	} 
	if(dragon()<tiger()) {
		for(int i=1;i<m;i++) {
			a[i]+=s2;
			if(abs(tiger()-dragon())<minn) {
				minn=abs(tiger()-dragon());
				idx=i;
			}
			a[i]-=s2;
		}
	}
	cout<<idx;
	return 0;
}
2024/9/8 18:58
加载中...