80分求助
查看原帖
80分求助
741299
zhangshibo678楼主2022/8/18 14:31
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long  c[1000009],v[1000009];
int main(){
    long long n,sum=0,f=0,k=1e19,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);
    if(p1>m) f+=s1*(p1-m);
     if(p1<m) sum+=s1*(m-p1);
	 int a=sum,b=f;
	 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=b;
         }
     }
        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=a;
			 }
			 }
			 
          v[m]=abs(sum-f);
           if(v[m]<k){
                k=v[m];
                q=m;
            }
    cout<<q;
    return 0;
}
2022/8/18 14:31
加载中...