28分求助!!!
查看原帖
28分求助!!!
582601
Been_Drunk楼主2022/9/7 18:14

RT,28分,各位大佬帮忙看看

#include <bits/stdc++.h>
using namespace std;
int h,l;
bool bj;
int main()
{
    long long a,b,cha=99999999;
    long long ans;
    long long minn;
    int c[10005];
    int m,p1,s1,s2;
    scanf ("%lld",&a);
    for (int i=1;i<=a;i++)
    {
        scanf ("%d",&c[i]);
    }
    cin>>m>>p1>>s1>>s2;
    for (int i=1;i<m;i++)
    {
        if (i==p1)
        {
            c[i]+=s1;
            l+=c[i]*(m-i);
        }
        else
        {
            l+=c[i]*(m-i);
        }
    }
    for (int i=m+1;i<=a;i++)
    {
        if (i==p1)
        {
            c[i]+=s1;
            l+=c[i]*(i-m);
        }
        else
        {
            l+=c[i]*(i-m);
        }
    }
    if (l>h)
    {
        for (int i=a;i>=m;i--)
        {
            int temp=(i-m)*s2;
            int temp2=temp+h;
            minn=abs(temp2-l);
            if (minn<=cha)
            {
                cha=minn;
                ans=i;
            }
        }
    }
    if (l<h)
    {
        for (int i=1;i<=m;i++)
        {
            int temp=(i-m)*s2;
            int temp2=temp+l;
            minn=abs(temp2-h);
            if (minn<=cha)
            {
                cha=minn;
                ans=i;
            }
        }
    }
    if (l==h)
    {
        ans=m;
    }
    printf ("%lld",ans);
    return 0;
}
2022/9/7 18:14
加载中...