Pagini recente » Cod sursa (job #383941) | Cod sursa (job #1918971) | Cod sursa (job #2163868) | Cod sursa (job #2859804) | Cod sursa (job #137585)
Cod sursa(job #137585)
#include <stdio.h>
#include <string.h>
int a[20],b[20];
char sir[20][100];
char c[50000],d[50000];
char s[3000000];
int main()
{
FILE *in,*out;
int i,j,n,m,k,k2,x,y,p,ver;
in=fopen("lampa.in","r");
out=fopen("lampa.out","w");
fscanf(in,"%d%d",&n,&m);
a[1]=1;
a[2]=0;
b[1]=0;
b[2]=1;
for (i=3;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
b[i]=b[i-1]+b[i-2];
}
strcpy(sir[1],"a");
strcpy(sir[2],"b");
for (i=3;i<=n;i++)
{
strcpy(sir[i],sir[i-2]);
strcat(sir[i],sir[i-1]);
}
fscanf(in,"%s",s);
x=m/a[n];
for (i=1;i<=x;i++)
{
if ((m-i*a[n])%b[n]==0)
{
if (n%2)
{
j=(m-i*a[n])/b[n];
for (k=0;k<i;k++)
c[k]=s[k];
for (k=0;k<j;k++)
d[k]=s[k+i];
}
else
{
j=(m-i*a[n])/b[n];
for (k=0;k<j;k++)
d[k]=s[k];
for (k=0;k<i;k++)
c[k]=s[k+j];
}
p=0;
y=strlen(sir[n]);
ver=1;
for (k=0;k<y;k++)
{
if (sir[n][k]=='a')
{
for (k2=0;k2<i;k2++)
if (s[p+k2]!=c[k2])
{
ver=0;
k=y;
break;
}
p+=i;
}
else
{
for (k2=0;k2<j;k2++)
if (s[k2+p]!=d[k2])
{
ver=0;
k=y;
break;
}
p+=j;
}
}
if (ver)
{
for (k=0;k<i;k++)
fprintf(out,"%c",c[k]);
fprintf(out,"\n");
for (k=0;k<j;k++)
fprintf(out,"%c",d[k]);
fprintf(out,"\n");
fclose(in);
fclose(out);
return 0;
}
}
}
fprintf(out,"\n");
fclose(in);
fclose(out);
return 0;
}