Cod sursa(job #1968733)

Utilizator cosminnicaAruxandei Cosmin Andrei cosminnica Data 17 aprilie 2017 20:22:31
Problema Substr Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.13 kb
#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;
}