Pagini recente » Cod sursa (job #2914678) | Cod sursa (job #930738) | Cod sursa (job #2479148) | Cod sursa (job #2172768) | Cod sursa (job #1141)
Cod sursa(job #1141)
# include <fstream>
# include <string>
using namespace std;
# define input "substr.in"
# define output "substr.out"
# define max 16390
char b[max][max],s[max],aux[max];
int compara(char *p,char *q);
long n,i,j,k,nr,rez,r;
int main()
{
ifstream fin ( input ) ;
ofstream fout ( output ) ;
fin >> n >> r;
fin.get();
fin.getline(s,max);
for(i = n-r+1;i;i--)
{
for(k = 0;k<=n-i;k++)
{
for(j = 0;j<i;j++)
b[k][j] = s[j+k];
b[k][j] = '\0';
}
for(k = 0;k<n-i;k++)
for(j = k+1;j<=n-i;j++)
if(compara(b[k],b[j]))
{
strcpy(aux,b[k]);
strcpy(b[k],b[j]);
strcpy(b[j],aux);
}
nr= 1;
for(k = 0;k<n-i-1;k++)
{
if(!strcmp(b[k],b[k+1]))
{
nr++;
}
else
{
if(nr > rez)
rez = nr;
nr = 1;
}
}
if(rez >= r)
{
fout << i;
return 0;
}
}
return 0;
}
int compara(char *p,char *q)
{
int n = strlen(p);
int m = strlen(q);
if(n > m)
return 1;
if(n < m)
return 0;
for(int i = 0;i<n;i++)
{
if(p[i] > q[i])
return 1;
if(p[i] < q[i])
return 0;
}
return 0;
}