比赛 东方幻想乡 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;
}