Pagini recente » Cod sursa (job #676701) | Cod sursa (job #439304) | Cod sursa (job #2638594) | Cod sursa (job #1965786) | Cod sursa (job #964399)
Cod sursa(job #964399)
#include<fstream>
using namespace std;
ifstream f("lampa.in");
ofstream g("lampa.out");
int n,l,i,j,a[30],b[30],v[200];
string s1,s2,c[30];
char s[300100];
inline bool verif(int x,int y)
{
int ps1,ps2,p,i,j;
char ch;
ps2=l-y+1;
if(n%2)
ps1=1;
else
ps1=1+y;
v['a']=x;
v['b']=y;
p=0;
for(i=1;i<=l;)
{
ch=c[n][p];
if(ch=='a')
{
for(j=i;j<i+v[ch];++j)
if(s[j]!=s[ps1+j-i])
return 0;
}
else
{
for(j=i;j<i+v[ch];++j)
if(s[j]!=s[ps2+j-i])
return 0;
}
i+=v[ch];
++p;
}
// s1=v['a'];
s1.clear();
for(i=1;i<=v['a'];++i)
s1.push_back(s[ps1+i-1]);
// s2=v['b'];
s2.clear();
for(i=1;i<=v['b'];++i)
s2.push_back(s[ps2+i-1]);
return 1;
}
int main()
{
f>>n>>l;
f>>(s+1);
a[1]=b[2]=1;
c[1]="a";
c[2]="b";
for(i=3;i<=25;++i)
{
a[i]=a[i-1]+a[i-2];
b[i]=b[i-1]+b[i-2];
c[i]=c[i-2]+c[i-1];
}
for(i=1;i*a[n]<=l;++i)
{
if(!((l-a[n]*i)%b[n]))
{
j=(l-a[n]*i)/b[n];
if(verif(i,j))
{
g<<s1<<'\n'<<s2<<'\n';
return 0;
}
}
}
g<<0<<'\n';
return 0;
}