大佬求解 12分
查看原帖
大佬求解 12分
741299
zhangshibo678楼主2022/7/23 17:57
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long  c[100009],v[100009];
int main(){
//	freopen("fight.in","r",stdin);
//	freopen("fight.out","w",stdout);
    long long n,sum=0,f=0,k=10000000,q,m,p1,s1,s2;
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>c[i];
    }
    cin>>m>>p1>>s1>>s2;
    for(int i=1;i<m;i++)   sum+=c[i]*(m-i);
    for(int i=n;i>m;i--)  f+=c[i]*(i-m);
    
    int a=sum,b=f;
     if(p1>m) f+=s1*(n-p1);
     if(p1<m) sum+=s1*(m-p1);
	 if(a>b) {
	 	 for(int i=n;i>m;i--){
	 	 	f+=s2*(i-m);
	 	 	v[i]=abs(sum-f);
    	    if(v[i]<k)  {
    	    	k=v[i];
    	    	q=i;
    	    }
    	    f=a;
	 	 }
	 }
    
    	if(a<b) {
    	for(int i=1;i<m;i++){
	 	 	sum+=s2*(m-i);
	 	 	v[i]=abs(sum-f);
    	    if(v[i]<k){
    	    	k=v[i];
    	    	q=i;
    	    }
    	    sum=b;
    	}
    }
    	if(a==b) {
    		cout<<m;
    	  // fclose(stdin);
	      // fclose(stdout);
    		return 0;
    	}
    cout<<q;
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}
2022/7/23 17:57
加载中...