代码强制 13C 解决方案

Codeforces 13C Solution

本文关键字:解决方案 13C 代码      更新时间:2023-10-16

http://codeforces.com/problemset/problem/13/C我对上述问题有问题。谁能清楚地解释解决方案。我的代码对我来说似乎还不错,但是它没有通过测试用例 8。

lli n;
cin>>n;
lli arr[size];
fi(i,n)
cin>>arr[i];
if(n==1)
    cout<<"0"<<endl;
else
{
    lli sum=0;
    for(lli i=n-1; i>0; i--)
    {
        if(arr[i]<arr[i-1])
        {
            lli k=abs(arr[i]-arr[i-1]);
            if(i==(n-1))
            {
                arr[i]+=k;
                sum+=k;
            }
            else
            {
                if((arr[i]+k)<=arr[i+1])
                    arr[i]+=k, sum+=k;
                else
                    arr[i-1]-=k, sum+=k;
            }
        }
    }
    cout<<sum<<endl;
}

程序比较arr[i]是否小于arr[i-1],这在10000 1 1 1的情况下可能会失败。

O(n( 的解决方案是将进行平均值并将每个数字更改为平均数字。

相关文章: