Pagini recente » Cod sursa (job #1341403) | Cod sursa (job #1435860) | Cod sursa (job #538011) | Cod sursa (job #1196878) | Cod sursa (job #1355555)
#include<fstream>
#include<map>
#include<vector>
#include<string>
#include<cstring>
using namespace std;
typedef int var;
ifstream fin("substr.in");
ofstream fout("substr.out");
char STRING[40001];
var len, k;
map<string, int> MAP;
char MODEL[40001];
string M;
bool check(var l) {
MAP.clear();
memset(MODEL, 0, sizeof(MODEL));
for(var i=0; i<l; i++) {
MODEL[i] = STRING[i];
}
char *p = MODEL;
M = p;
MAP[M] ++;
for(var i=l; i<len; i++) {
MODEL[i] = STRING[i];
p++;
M = p;
MAP[M] ++;
if(MAP[M] >= k) {
return true;
}
//fout<<MAP["badabado"];
}
return false;
}
int main() {
fin>>len>>k;
fin>>STRING;
var i, l=0;
for(i=1; i<=len; i<<=1);
for(i>>=1; i; i>>=1) {
if(check(l+i))
l += i;
}
fout<<l;
return 0;
}