60pts 求条
查看原帖
60pts 求条
1004463
RoamingDuck楼主2025/6/20 18:10
# include <iostream>
const int N = 50005;
int L, n, m, d[N], l ( 1 ), r;
bool f ( int x ) {
	int pos ( 0 ), ret ( 0 ), jet ( 0 );
	while ( pos <= n ) {
		pos ++;
		if ( d[pos] - d[jet] < x ) ret ++;
		else jet = pos;
	}
	if ( ret > m ) return 0; return 1;
}
int main () {
	std::cin.tie ( 0 ) -> sync_with_stdio ( false );
	std::cin >> L >> n >> m; r = L;
	for ( int i ( 1 ); i <= n; i ++ )
		std::cin >> d[i];
	d[0] = 0, d[n + 1] = L;
	while ( l < r - 1 ) {
		int m ( ( l + r ) >> 1 );
		if ( f ( m ) ) l = m;
		else r = m - 1;
	}
	std::cout << l << '\n';
	return 0;
}
2025/6/20 18:10
加载中...