Subtask #1不过
查看原帖
Subtask #1不过
927734
a_leo楼主2025/8/30 16:22
#include <bits/stdc++.h>
using namespace std;    
int k, n, m;
int a[50010];

bool check(int mid)
{
    int ans = 0, s = 0;
    for (int i = 1; i <= n; i++)
    {
        if (a[i] - s < mid)
        {
             ans = ans + 1;           
        }
        else
        {
            s = a[i];            
        }
    }

    return ans <= m;
}

int main()
{

    cin >> k >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    int l = 0, r = k;
    while (l < r)
    {
        int mid = (l + r) >> 1;
        if (check(mid))
        {
            l = mid + 1;            
        }

        else
        {
            r = mid - 1;            
        }

    }
    if (!check(l))
    {
        l -= 1;        
    }

    cout << l;
    return 0;
}

2025/8/30 16:22
加载中...