P5016,最后五个WA
  • 板块题目总版
  • 楼主xiaozeming
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/7/14 12:48
  • 上次更新2023/11/3 09:56:04
查看原帖
P5016,最后五个WA
793341
xiaozeming楼主2023/7/14 12:48
#include<bits/stdc++.h>
using namespace	std;
long long attck[100000],f[100000];
int	main()
{
	long long n,m,p1,s1,s2,xx=0,kk=0,Min=1000,mic;
	cin>>n;
	for(long long i=1;i<=n;i++){
		cin>>attck[i];
	}
	cin>>m>>p1>>s1>>s2;
	f[m]=0;
	for(long long i=1;i<m;i++){
		f[i]=1;
		xx+=attck[i]*(m-i);
	}
	for(long long i=n;i>m;i--){
		f[i]=2;
		kk+=attck[i]*(i-m);
	}
	if(f[p1]==1){
		xx+=s1*(m-p1);
	}
	else if(f[p1]==2){
		kk+=s1*(p1-m);
	}
	else{
		xx=xx;
	}
	for(int i=1;i<=n;i++){
		if(f[i]==1){
			xx+=s2*(m-i);
		}
		else if(f[i]==2){
			kk+=s2*(i-m);
		}
		else{
			xx=xx;
		}
		if(max(xx,kk)-min(xx,kk)<Min){
			Min=max(xx,kk)-min(xx,kk);
			mic=i;
		}
		if(f[i]==1){
			xx-=s2*(m-i);
		}
		else if(f[i]==2){
			kk-=s2*(i-m);
		}
		else{
			xx=xx;
		}
	}
	cout<<mic;
	return 0;
}
2023/7/14 12:48
加载中...