92分求助!
查看原帖
92分求助!
582601
Been_Drunk楼主2022/9/7 22:57

RT

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
long long h, l;
long long abss(long long a)
{
    if (a > 0)
        return a;
    if (a < 0)
        return -a;
    if (a == 0)
        return 0;
}
int main()
{
    long long a, cha = 0;
    long long ans;
    long long minn = 99999999;
    int c[100005];
    long long m, p1, s1, s2;
    scanf("%lld", &a);
    for (long long i = 1; i <= a; i++)
    {
        scanf("%d", &c[i]);
    }
    scanf("%lld %lld %lld %lld", &m, &p1, &s1, &s2);
    for (long long i = 1; i <= a; i++)
    {
        if (i < m)
        {
            if (i == p1)
            {
                c[i] = s1 + c[i];
                l+=c[i] * (m - p1);
            }
            else
            {
                l += c[i] * (m - i);
            }
        }
        else if (i > m)
        {
            if (i == p1)
            {
                c[i] = s1 + c[i];
                h += c[i] * (p1 - m);
            }
            else
            {
                h += c[i] * (i - m);
            }
        }
    }
    if (l == h)
    {
        ans = m;
        printf("%lld", ans);
        return 0;
    }
    if (l > h)
    {
        for (long long i = a; i >= m; i--)
        {

            long long temp = (i - m) * s2;
            long long temp2 = temp + h;
            cha = abss(temp2 - l);
            if (cha <= minn)
            {
                minn = cha;
                ans = i;
            }
        }
        printf("%lld", ans);
        return 0;
    }
    if (l < h)
    {
        for (long long i = 1; i <= m; i++)
        {
            long long temp = (m - i) * s2;
            long long temp2 = temp + l;
            cha = abss(temp2 - h);
            if (cha <= minn)
            {
                minn = cha;
                ans = i;
            }
        }
        printf("%lld", ans);
        return 0;
    }
}
2022/9/7 22:57
加载中...