| 比赛 | 
    东方幻想乡 S3 | 
    评测结果 | 
    WTWAAAAAWAAAAAAAAAAA | 
    | 题目名称 | 
    比那名居天子 | 
    最终得分 | 
    80 | 
    | 用户昵称 | 
    王者自由 | 
    运行时间 | 
    1.088 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.77 MiB  | 
    | 提交时间 | 
    2012-08-09 19:25:36 | 
显示代码纯文本
#include <cstdio>
const int N = 500000 + 10;
int n, k, l, r, m;
char c;
bool a[N];
bool OK(int x) {
    int s = 0, i = 1;
    while(i <= n)
        if(a[i]) s++, i += x; else i++;
    return s <= k;
}
int main() {
    freopen("tenshi.in", "r", stdin);
    freopen("tenshi.out", "w", stdout);
    scanf("%d %d", &n, &k);
    for(int i=1; i<=n; i++) {
        scanf("%c", &c);
        a[i] = c - '0';
    }
    l = 0, r = n;
    while(l <= r) {
        m = (l + r) / 2;
        //fprintf(stderr, "%d (%d) %d\n", l, m, r);
        OK(m) ? r = m-1 : l = m+1;
    }
    printf("%d\n", l);
    return 0;
}