20分蒟蒻中的蒟蒻求助!能提多少是多少
查看原帖
20分蒟蒻中的蒟蒻求助!能提多少是多少
423698
Wanted_楼主2021/5/16 15:40

为什么只有

20分

枯了,码了挺久的,求解答 附上代码

#include <iostream>
#include <cmath>
using namespace std;
int by[100005];
int main(){
	int n,m,p1,p2,s1,s2;
	cin>>n;
	for (int i=0;i<n;i++)
	{
		cin>>by[i];
	}
	cin>>m>>p1>>s1>>s2;
	int dp=0,tp=0;
	by[p1-1]+=s1;
	for (int i=0;i<m-1;i++){
		dp+=by[i]*(m-i-1);
	}
	for (int i=m;i<n;i++){
		tp+=by[i]*(i-m+1);
	}
	int power,min=0x7fffffff;//min为最小差,power为手中兵的力量 
	if (dp<tp){
		for (int i=0;i<m;i++){
			power=(s2+by[i])*(m-i-1);
			if (abs(dp+power-tp)<min){
				min = abs(dp+power-tp);
				p2 = i;
			}
		}
		cout<<p2;
		return 0;
	}
	if (dp==tp)cout<<m;
	if (dp>tp){
		for (int i=m;i<n;i++){
			power=(s2+by[i])*(i-m+1);
			if (abs(dp+power-tp)<min){
				min = abs(dp+power-tp);
				p2 = i;
			}
		}
		cout<<p2;
		return 0;
	}
	return 0;
}

只有1 4 7 8 14五个点对了... 我不甘心

2021/5/16 15:40
加载中...