Pagini recente » Cod sursa (job #1902385) | Cod sursa (job #1895241) | Cod sursa (job #370492) | Cod sursa (job #1834923) | Cod sursa (job #258133)
Cod sursa(job #258133)
#include<fstream>
#include<string.h>
using namespace std;
ifstream fin("lampa.in");
ofstream fout("lampa.out");
int N,M,fa,fb;
char cuv[400000];
int valid(char a[],char b[]){
char A[400000],B[400000];
strcpy(A,a);
strcpy(B,b);
for(int i=3;i<=N;i++){
char aux[400000];
strcpy(aux,A);
strcpy(A,B);
strcpy(B,aux);
strcat(B,A);
}
if(strcmp(B,cuv)==0)
return 1;
return 0;
}
int main(){
fin>>N>>M>>cuv;
fa=fb=1;
for(int i=1;i<N-2;i++){
int aux;
aux=fa;
fa=fb;
fb+=aux;
}
int ok=0;
for(int la=1;la<=(M-fb)/fa&&ok==0;la++){
int lb=(M-la*fa)/fb;
if(M==la*fa+lb*fb){
char A[400000],B[400000];
if(N%2){
for(int i=0;i<la;i++)
A[i]=cuv[i];
for(int i=0;i<lb;i++)
B[i]=cuv[i+la];
B[lb]=0;A[la]=0;
}
else{
for(int i=0;i<lb;i++)
B[i]=cuv[i];
for(int i=0;i<la;i++)
A[i]=cuv[i+lb];
A[la]=0;B[lb]=0;
}
if(valid(A,B)){
ok=1;
fout<<A<<"\n"<<B<<"\n";
}
}
}
if(ok==0)
fout<<0<<"\n";
fin.close();
fout.close();
return 0;
}