Pagini recente » Cod sursa (job #1672676) | Cod sursa (job #1068967) | Cod sursa (job #543568) | Cod sursa (job #2379693) | Cod sursa (job #3177500)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ifstream fin("substr.in");
ofstream fout("substr.out");
#define HASH_BASE 73
#define HASH_SIZE1 2007
#define HASH_SIZE2 2021
int f[2007][2021];
char a[17000];
int n,k;
int addhash(int strhash,char x,int hbase,int hsize)
{
strhash = (strhash * hbase + x)%hsize;
return strhash;
}
int main()
{
fin >> n >> k;
for(int i=1;i<=n;i++)
{
fin >> a[i];
}
int lmax=0;
for(int i=1;i<=n;i++)
{
int strhash1=0,strhash2=0;
for(int j=i;j<=n;j++)
{
strhash1 = addhash(strhash1,a[j],HASH_BASE,HASH_SIZE1);
strhash2 = addhash(strhash2,a[j],HASH_BASE,HASH_SIZE2);
f[strhash1][strhash2]++;
if(f[strhash1][strhash2] >= k)
{
lmax=max(lmax,j-i+1);
}
}
}
fout << lmax;
}