80分,求助!!!
查看原帖
80分,求助!!!
521302
landernal楼主2022/2/13 22:18

后面五个数据都re

#include <iostream>
#include <cmath>
using namespace std;
int n, m, p1, p2;
long long a[10005], s1, s2, dragon, tiger, d;
int main(){
    cin >> n;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    cin >> m >> p1 >> s1 >> s2;
    for(int i = 1; i <= n; i++) {
        if(i < m) {
            dragon = dragon + a[i] * (m - i);
        }
        if(i > m) {
            tiger = tiger + a[i] * (i - m);
        }
    }
    if(p1 <= m) {
        dragon = dragon + s1 * (m - p1);
    }else{
        tiger = tiger + s1 * (p1 - m);
    }
    d = dragon - tiger;
    if(d == 0) {
        cout << m << endl;
        return 0;
    }
    if(d > 0) {
        p2 = 0;
        long long y = d;
        for(int i = m + 1; i <= n; i++) {
            long long x = abs(s2 * (i - m) - y);
            if(x < d) {
                d = x;
                p2 = i;
            }
        }
        if(p2 == 0) {
            cout << m << endl;
            return 0;
        }
    }else{
        p2 = 0;
        long long y = d;
        for(int i = 1; i < m; i++) {
            long long x = abs(s2 * (m - i) + y);
            if(x < abs(d)) {
                d = x;
                p2 = i;
            }
        }
        if(p2 == 0) {
            cout << m << endl;
            return 0;
        }
    }
    cout << p2 << endl;
    return 0;
}

2022/2/13 22:18
加载中...