P2678AC了,本题却10pts
查看原帖
P2678AC了,本题却10pts
848964
hzoi_Shadow楼主2023/1/14 11:21

P2678(AC) P2855(10pts)

#include<bits/stdc++.h>
using namespace std;
long long int a[50001];
int main()
{
    long long int l,n,m,i,x=0,y,v,dis,num;
    cin>>l>>n>>m;
    if(n==0)
    {
    	cout<<l;
    }
    else
    {
    	for(i=1;i<=n;i++)
    	{
        	cin>>a[i];
    	}
    	y=l;
    	while(x+1<y)
    	{
        	v=(x+y)/2;
        	dis=0;
			num=0;
		    for(i=1;i<=n;i++)
		    {
		        if(a[i]-dis<v)
		        {
		            num++;
		        }
				else
		        {
		            dis=a[i];
		    	}
		    }
			if(l-dis<x)
		    {
		        num++;
		    }
		    if(num<=m)
		    {
		    	x=v;
		    }
		    else
		    {
		    	y=v;
    		}
   		}
    	cout<<x;
    }
    return 0;
}
2023/1/14 11:21
加载中...