80分求助
查看原帖
80分求助
689146
mushezi楼主2022/8/18 18:31

代码如下:

#include <bits/stdc++.h>
using namespace std;

long long n, m;
long long pep[100005];
long long s1, p1, s;
long long l, r;
long long minl;
long long pos;

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> pep[i];
    }
    cin >> m >> p1 >> s1 >> s;
    pep[p1] += s1;

    for(int i = 1; i < m; i++) l += pep[i] * (m-i);
    for(int i = m+1; i <= n; i++) r += pep[i] * (i-m);

    if(l == r) cout << m ;
    else{
        pos = m;
        minl = labs(l-r);
        if(l < r){
            for(int i = 1; i < m; i++){
                if(minl > labs(l + s*(m-i)-r)){
                    minl = labs(l + s*(m-i)-r);
                    pos = i;
                }
            }
        }
        else{
            for(int i = m+1; i <= n; i++){
                if(minl > labs(r + s*(i-m)-l)){
                    minl = labs(r + s*(i-m)-l);
                    pos = i;
                }
            }
        }
        cout << pos ;
    }

    return 0;
}

2022/8/18 18:31
加载中...