B题

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pi = pair<ll, ll>;
using ld = long double;
const int N = 1e6+ 10;
int mod = 1e9 + 7;
ll n,m;
void solve()
{
    ll k;
    cin >> n >> m >> k;
    vector<ll> a(n, 0);
    for(int i = 0; i < n; i++) cin >> a[i];
    sort(a.begin(), a.end());
    a.erase(unique(a.begin(), a.end()), a.end());
    ll ans = 0;
    int l = 0;
    for(int r = 0; r < a.size(); r++) {
        while(a[r] - a[l] - 1 - (r - l - 1) > k) l++;
        ll now = a[r] - a[l] - 1 - (r - l - 1);
        ll sheng = k - now;
        ll mx = a[l] - 1 + m - a[r];
        ans = max(ans, min(mx, sheng) + a[r] - a[l] + 1);
    }
    cout << ans;
}
int main()
{
  // 请在此输入您的代码
    ios::sync_with_stdio(0);
    cin.tie(0);
    int _ = 1;
//     cin >> _;
    while(_--) solve();
}

全部评论

相关推荐

勤劳的鲸鱼在okr拆解:没有别的选择就去吧,有实习和没实习找工作是天上地下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务