Pagini recente » Cod sursa (job #624911) | Cod sursa (job #1252602) | Cod sursa (job #1034904) | Cod sursa (job #2479475) | Cod sursa (job #2081348)
#include <cstdio>
#include <algorithm>
#include <cstring>
const int MAX_N = 16384;
char s[MAX_N];
char *suff[MAX_N];
bool cmp(char *a, char *b) {
return strcmp(a, b) < 0;
}
int main() {
freopen("substr.in", "r", stdin);
freopen("substr.out", "w", stdout);
int N, K;
scanf("%d%d%s", &N, &K, s);
for (int i = 0; i < N; i++) {
suff[i] = s + i;
}
std::sort(suff, suff + N, cmp);
int ans = 0;
for (int i = 0; i < N - K + 1; i++) {
int k = 0;
char *suff1, *suff2;
suff1 = suff[i];
suff2 = suff[i + K - 1];
while (*suff1 && *suff2 && *suff1 == *suff2) {
k++;
suff1++;
suff2++;
}
ans = std :: max (ans, k);
}
printf("%d\n", ans);
return 0;
}