Subtask #1错了求调
查看原帖
Subtask #1错了求调
1591690
keyudong楼主2024/12/11 21:47

100分求调 Subtask #1怎么也过不了

#include <iostream>
using namespace std;
long long n, m, k, l, r, mid, ans;
long long a[50005];
bool check(long long x)
{
    long long last = 0;
    long long sum = 0;
    for (long long i = 1; i <= n; i++)
    {
        if (a[i] - last < x)
        {
            sum++;
        }
        else
        {
            last = a[i];
        }
        if (sum > k)
            return false;
    }
    return true;
}
int main()
{
    cin >> m >> n >> k;
    for (long long i = 1; i <= n; i++)
        cin >> a[i];
    a[n + 1] = m;
    l=1,r=m;
    while(l<=r)
    {
        mid=(l+r)/2;
        if(check(mid))
        {
            ans=mid;
            l=mid+1;
        }
        else
        {
           r=mid-1; 
        }
    }
    cout << ans << endl;
    return 0;
}
2024/12/11 21:47
加载中...