func_code_string: #include <bits/stdc++.h>   using namespace std;   int z[2 * 1000 * 1000 + 10];   char s[2 * 1000 * 1000 + 10];   bool T[2 * 1000 * 1000 + 10];   int cnt[2 * 1000 * 1000 + 10];   int main() {     int K, L;     scanf( %d%d , &L, &K);     scanf( %s , &s);     for (int i = 1, l = 0, r = 0; i < L; ++i) {       if (i <= r) z[i] = min(r - i + 1, z[i - l]);       while (i + z[i] < L && s[z[i]] == s[i + z[i]]) ++z[i];       if (i + z[i] - 1 > r) l = i, r = i + z[i] - 1;     }     int k, m;     for (int i = 1; i < L; i++) {       k = z[i] / i + 1;       m = z[i] % (i);       if (k == K) {         T[i * K - 1] = true;         cnt[i * K - 1] = max(cnt[i * K - 1], m);       }       if (k > K) {         T[i * K - 1] = true;         cnt[i * K - 1] = max(cnt[i * K - 1], i);       }       if (k >= K + 1) T[i * (K + 1) - 1] = true;     }     for (int i = 0; i < L; i++) {       if (K == 1) T[i] = true;       if (cnt[i]) {         T[i + 1] = true;         cnt[i + 1] = max(cnt[i + 1], cnt[i] - 1);       }       printf( %d , T[i]);     }     printf(  n );     return 0;   }   