急啊,求hack
查看原帖
急啊,求hack
345900
Haber楼主2020/12/12 12:23
#include<iostream>
using namespace std;
int main(){
    long long a[100001]={0},n,m,p1,s1,s2;
    long long l=0,h=0,min,minn=1e19,len;
    cin>>n;
    for(long long i=1;i<=n;i++){
        cin>>a[i];
    }
    cin>>m>>p1>>s1>>s2;
    for(long long i=1;i<m;i++){
        l=l+(m-i)*a[i];
    }
    for(long long i=m+1;i<=n;i++){
        h=h+a[i]*(i-m);
    }
    if(p1>m){
        a[p1]=a[p1]+s1;
        h=h+s1*(p1-m);
    }if(p1<m){
        a[p1]=a[p1]+s1;
        l=l+s1*(m-p1);
    }if(l==h){
        cout<<m;
        return 0;
    }else{
        if(l>h){
            for(long long i=m+1;i<=n;i++){
                if(s2*(i-m)+h>l){
                    min=s2*(i-m)+h-l;
                }
                if(s2*(i-m)+h==l){
                    cout<<i;
                    return 0;
                }
                if(s2*(i-m)+h<l){
                    min=l-(s2*(i-m)+h);
                }
                if(minn>min){
                    minn=min;
                    len=i;
                }
            }
            cout<<len;
            return 0;
        }
        for(long long i=1;i<m;i++){
            if(s2*(m-i)+l>h){
                min=s2*(m-i)+l-h;
            }
            if(s2*(m-i)+l==h){
                cout<<i;
                return 0;
            }
            if(s2*(m-i)+l<h){
                min=h-(s2*(m-i)+l);
            }
            if(minn>min){
                minn=min;
                len=i;
            }
        }
        cout<<len;
        return 0;
    }
    return 0;
}
2020/12/12 12:23
加载中...