1 条题解

  • 1
    @ 2023-10-14 14:25:11
    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int n,m,p1;
    long long s1,s2;
    long long arr[100003];
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		scanf("%lld",&arr[i]);
    	}
    	scanf("%d",&m);
    	scanf("%d",&p1);
    	scanf("%lld",&s1);
    	scanf("%lld",&s2);
    	arr[p1]+=s1;
    	long long a=0,b=0;
    	for(int i=1;i<m;i++){
    		a+=arr[i]*(m-i);
    	}
    	for(int i=m+1;i<=n;i++){
    		b+=arr[i]*(i-m);
    	}
    	long long res=0,res1=1e9+1,c=0;
    	for(int i=1;i<=n;i++){
    		if(i<m){
    			a = a+s2*(m-i);
    		}else if(i>m){
    			b = b+s2*(i-m);
    		}
    		if(a<b){
    			c = b-a;
    		}else if(a>b){
    			c = a-b;
    		}else if(a==b){
    			cout << m;
    			return 0;
    		}
    		if(res1>c){
    			res1 = c;
    			res = i;
    		}
    		if(i<m){
    			a = a-s2*(m-i);
    		}else if(i>m){
    			b = b-s2*(i-m);
    		}
    	}
    	cout << res;
    	return 0;	
    }
    
    • 1

    信息

    ID
    3944
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    16
    已通过
    10
    上传者