Pagini recente » Cod sursa (job #1631303) | Cod sursa (job #1056392) | Cod sursa (job #2868381) | Cod sursa (job #1189595) | Cod sursa (job #182305)
Cod sursa(job #182305)
#include <stdio.h>
#include <string.h>
#define MAX 20000
FILE *f,*g;
char s[MAX],temp[MAX],s2[MAX],s1[MAX];
long len,dim;
int n;
int verifica(long a, long b)
{
long i;
for(i=a;i<b;i++)
if(s[i]!=s[i-a]) return 0;
return 1;
}
void executa(int n,long len)
{
long i,ok=0,j;
if(len%2==0)
j=len/2;
else
j=len/2+1;
for(i=j;(i<len)&&(ok==0);i++)
if(verifica(i,len))
{
ok=1;
}
strcpy(temp,s+len-i+1);
if(n-1>3)
{
strcpy(s,temp);
executa(n-1,strlen(s));
}
else
{
strncpy(s2,s,len-i+1);
strncpy(s1,s+len-i+1,len-2*(len-i+1));
}
}
int main()
{
f=fopen("lampa.in","r");
g=fopen("lampa.out","w");
fscanf(f,"%d %ld\n",&n,&dim);
fgets(s,MAX,f);
strncpy(temp,s,dim);
strcpy(s,temp);
executa(n,dim);
fprintf(g,"%s\n%s\n",s1,s2);
fclose(f); fclose(g);
return 0;
}