CodeForces - 1291C Mind Control (枚举)

🔋 🔋 🔋

//枚举k个人拿的所有情况
//对于某个情况再次枚举剩余的人拿的所有情况,取最小的
//因为k个人拿的情况是可控制的,所以对全部情况取最大值
int a[MAXN];
void solve()
{
    int n,m,k;cin>>n>>m>>k;
    k=min(k,m-1);
    rpp(i,n) cin>>a[i];
    //因为最后剩余的数组长度是确定的,
    //枚举最后剩余的数组在哪一段即可
    int res=m-k-1;
    int ans=0;
    for(int i=1;i<=k+1;++i)//k个人拿完剩余数组的左端点
    {
        int tmp=1e9+10;
        for(int j=0;j<=res;++j)//剩下的不能控制的人有几个人拿了前端的数字
            tmp=min(tmp,max(a[i+j],a[i+j+n-m]));
        ans=max(ans,tmp);
    }
    cout<<ans<<endl;
}
signed main()
{
    int T;cin>>T;
    while(T--) solve();
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值