AcWing 5995. 挖矿
原题链接
中等
作者:
最后五分钟
,
2025-04-06 02:57:50
· 江西
,
所有人可见
,
阅读 8
#include<bits/stdc++.h>
#define int long long
#define deg(a) cout << #a << " = " << a << "\n";
#define de(a) cout << #a << " = " << a << " ";
#define x first
#define y second
using namespace std;
const int N=2e6+10;
pair<int,int> p;
int l[N],r[N],sl[N],sr[N];
int cnt,res;
signed main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
if(x==0)cnt++;
else if(x<0)l[-x]++;
else r[x]++;
}
for(int i=1;i<N;i++)
{
sl[i]=sl[i-1]+l[i];
sr[i]=sr[i-1]+r[i];
}
for(int i=m;i>=0;i--)
{
int j=max(0ll,m-2*i);
res=max(res,cnt+sl[i]+sr[j]);
res=max(res,cnt+sl[j]+sr[i]);
}
cout<<res<<endl;
return 0;
}