a
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/9 09:22
  • 上次更新2024/7/9 09:22:55
查看原帖
a
1013979
封禁用户楼主2024/7/9 09:22
#include<bits/stdc++.h> 
using namespace std;
const int N=5e4+10;
int d[N];
const int INF=0x3F3F3F3F;
int l,n,m;
int main()
{
	cin>>l>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>d[i];
	}
	d[n+1]=l;
	int ans=-INF;
	for(int s=0;s<(1<<n);s++)
	{
		int cnt=0;
		vector<int>lib;
		lib.push_back(0);
		for(int i=0;i<n;i++)
		{
			if(((s>>i)&1)==1)
			{
				lib.push_back(i+1);
			}
		    else
		    {
		    	cnt++;
			}
		}
	    lib.push_back(n+1);
	    if(cnt==m)
		{
			int res=+INF;
			for(int i=1;i<lib.size();i++)
			{
				int u=lib[i],v=lib[i-1];
				res=min(res,d[u]-d[v]);
			}
	    	ans=max(ans,res);
		}
	}
	cout<<ans<<endl;
	
	return 0;
}
2024/7/9 09:22
加载中...