求助本题前缀和写法
查看原帖
求助本题前缀和写法
578004
02Ljh楼主2022/6/12 11:12

rt,始终没调出来

#include <bits/stdc++.h>
using namespace std;
int tr[1145141],qz[1145141]; 
int n;
int main()
{
    int n,m,tot=0;
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        cin>>tr[i];
        tot+=tr[i];
    }
    sort(tr,tr+n);
    qz[0]=tr[0];
    int wh;
    //cout<<endl<<qz[0];
    for(int i=1;i<n;i++)
    {
        qz[i]=qz[i-1]+tr[i];
        //cout<<" "<<qz[i];
        if(tot-qz[i]-(tr[i]*(n-i-1))<=m&&((tot-qz[i-1]-(tr[i-1]*(n-i-2))>m)||(i==n-1))) { wh=i; break; }
    }
    int ans=11451419;
    for(int i=tr[wh-1];i<=tr[wh];i++)
    {
        int ii=i;
        int to=tot-((n-wh-1)*ii)-ii;
        if(to>=m)
        {
            ans=min(ans,to);
        }
    }
    cout<<ans-2;
    return 0;
}
/*
tot=62; m=7;
tr:10 15 17 20
qz:10 25 42 62
hz:62 52 37 20

*/
2022/6/12 11:12
加载中...