hihocoder 1362 修补木桶

来源:互联网 发布:java md5 32加密算法 编辑:程序博客网 时间:2024/05/17 09:41

二分答案,枚举起点

#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>using namespace std;#define maxn 1005int n,m,l;int a[maxn];int solve(int x){    int num=0;    for(int i=0;i<n;i++)        if(a[i]<x){            num++;            i+=l-1;        }    return num;}int main(){    scanf("%d%d%d",&n,&m,&l);    for(int i=0;i<n;i++) scanf("%d",&a[i]);        int st=0,nd=1e9+7;    while(st<=nd){        int mid=(st+nd)/2;        int num=100000;        for(int i=0;i<l;i++){            for(int j=0;j<n-1;j++) swap(a[j],a[j+1]);            num=min(num,solve(mid));        }        if(num<=m) st=mid+1;        else nd=mid-1;    }    printf("%d\n",nd);}


0 0
原创粉丝点击