Cod sursa(job #2476919)

Utilizator TudorCaloianCaloian Tudor-Ioan TudorCaloian Data 19 octombrie 2019 12:35:43
Problema Substr Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#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;
}