Pagini recente » Cod sursa (job #112946) | Cod sursa (job #2457876) | Cod sursa (job #121873) | Cod sursa (job #841114) | Cod sursa (job #2476919)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("substr.in");
ofstream fout("substr.out");
int n, k, v[30000], ans;
string s[30000], c;
multiset <int> ms;
int main()
{
fin >> n >> k;
fin >> c;
for(int i = 0; i < n; i++)
s[i]=c.substr(i);
sort(s, s+n);
for(int i = 1; i < k; i++)
{
for(int k = 0; k < s[i].size(); k++)
if(s[i][k] != s[i-1][k]) break;
else v[i]++;
ms.insert(v[i]);
}
ans = *ms.begin();
for(int i = k; i < n; i++)
{
ms.erase(ms.find(v[i-k+1]));
for(int k = 0; k < s[i].size(); k++)
if(s[i][k] != s[i-1][k]) break;
else v[i]++;
ms.insert(v[i]);
ans = max(ans, *ms.begin());
}
fout << ans;
return 0;
}