比赛 东方幻想乡 S3 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 比那名居天子 最终得分 100
用户昵称 Makazeu 运行时间 0.093 s
代码语言 C++ 内存使用 2.20 MiB
提交时间 2012-08-09 19:37:58
显示代码纯文本
/*
* Problem  : tenshi
* Contest  : Touhou Stage.3
* Author   : Yee-fan Zhu
* Data     : July 21,2012
* Solution : BinaryChop 
*/
#include <cstdlib>
#include <cstdio>
using namespace std;
const int MAXN=500010;
int N,K,Ans,Mid,L,R,Num[MAXN];
 
bool check(int k)
{
    int now=0,res=0;
    while(now<N)
    {
        if(Num[now+1]) res++,now+=k;
        else now++;
    }
    return res<=K;
}
 
int main()
{
    freopen("tenshi.in","r",stdin);
    freopen("tenshi.out","w",stdout);
    scanf("%d %d\n",&N,&K);
    char c;
    for(int i=1;i<=N;i++) 
    {
        scanf("%c",&c);
        Num[i]=c-'0';
    }
    L=0,R=N; bool flag;
    while(L<=R)
    {
        Mid=(L+R)>>1;
        flag=check(Mid);
        if(flag) Ans=Mid,R=Mid-1;
        else L=Mid+1;
    }
    printf("%d\n",Ans);
    return 0;
}