Pagini recente » Rating Konya Sabin Gabriel (gabi20321) | Cod sursa (job #1744758) | Istoria paginii utilizator/arvinte_dobreanu_ionita_iasi | Rating vesko penev (vesko465) | Cod sursa (job #1968733)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ull unsigned long long
#define ui unsigned int
#define string const char*
void genSubstring(ull pos,ui len,char* str, char* substr)
{
ui i=0,j=0;
for(i=pos; i<pos+len;++i,++j)
{
substr[j]=str[i];
}
substr[j]='\0';
return ;
}
ull searchSubstring(const char*str, const char* substr)
{
ull i=0,j=0,nap=0;
while(str[i]!='\0')
{
while(str[i]==substr[j]&&substr[j]!='\0')
{
++i,++j;
}
if(substr[j]=='\0')
{
nap++;
--i;
}
j=0;
++i;
}
return nap;
}
int main()
{
char *str;
unsigned int n;
unsigned int m=0;
unsigned int i=0;
unsigned int j=0;
unsigned int k;
FILE *f=fopen("fin", "r");
FILE *o=fopen("fout", "w");
fscanf(f, "%u %u", &n, &k);
str=malloc(sizeof(char)*n);
fscanf(f, "%s", str);
fclose(f);
m=(n/k)+1;
char *substr=malloc(sizeof(char)*m);
ull nap=0;
while(m)
{
for(i=0;i<n;++i)
{
genSubstring(i,m,str,substr);
j=searchSubstring(str, substr);
if(j>=k)
{
fprintf(o, "%d", strlen(substr));
goto exit;
}
}
m--;
}
exit:;
free(str);
str=NULL;
free(substr);
substr=NULL;
fclose(o);
return 0;
}