Cod sursa(job #3202315)

Utilizator unomMirel Costel unom Data 11 februarie 2024 13:11:51
Problema Substr Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <unordered_map>

using namespace std;

ifstream in("substr.in");
ofstream out("substr.out");
int n, k, ans;
string s;

int check(int x)
{
    unordered_map<string, int> m;

    string a;
    int nrmax = 0;
    for(int i = 0; i<=(int)s.size() - x; i++)
    {
        a = s.substr(i, x);

        //out<<a<<'\n';

        m[a]++;

        if(m[a] > nrmax)
        {
            nrmax = m[a];
        }
    }

    return nrmax >= k;
}

int main()
{
    in>>n>>k;

    in>>s;

    int st = 1;
    int dr = n;
    int mij;

    while(st <= dr)
    {
        mij = (st + dr) / 2;

        if(check(mij))
        {
            ans = mij;
            st = mij + 1;
        }
        else
        {
            dr = mij - 1;
        }

        //out<<'\n'<<'\n';
    }

    out<<ans;

    return 0;
}