答案(差分版)
查看原帖
答案(差分版)
1199794
Terakomari楼主2024/3/16 15:06
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
#define x first
#define y second

void Kisara() {
	ll n,l;
	cin>>n>>l;
	vector<ll> c(n+5);
	for(ll i=1;i<=n;i++){
		cin>>c[i];
	}
	vector<ll> cnt(n+5);
	sort(c.begin()+1,c.begin()+n+1);
	for(ll i=1;i<=n;i++){
		if(c[i]>=1){
			cnt[1]++;
			cnt[c[i]+1]--;
		}
	}
	for(ll i=1;i<=n;i++){
		cnt[i]+=cnt[i-1];
	}
	cnt[0]=n;
	for(ll i=n;i>=1;i--){
		ll xz=cnt[i-1]-cnt[i];
		if(cnt[i]+min(xz,l)>=i){
			cout<<i<<endl;
			return;
		}
	}
	cout<<"0"<<endl;
}

int main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    Kisara();
    return 0;
}
2024/3/16 15:06
加载中...