Cod sursa(job #1355555)

Utilizator retrogradLucian Bicsi retrograd Data 22 februarie 2015 20:52:59
Problema Substr Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#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;
}