Pagini recente » Cod sursa (job #1989823) | Cod sursa (job #1309593) | Cod sursa (job #672301) | Cod sursa (job #1950778) | Cod sursa (job #1965337)
#include <bits/stdc++.h>
using namespace std;
ifstream f("lampa.in");
ofstream g("lampa.out");
int n,m;
int fibn,fibn1,fibn2;
string s;
void fibbo(int x1,int x2,int pc){
if(pc==n){
fibn=x2;
return;
}
if(pc==n-1)fibn1=x2;
if(pc==n-2)fibn2=x2;
fibbo(x2,x1+x2,pc+1);
}
bool ver(int na,int nb)
{
for(int p=0;p<nb;p++)
if(s[m-p-1]!=s[m-p-1-na-nb]||s[m-p-1]!=s[m-p-1-na-nb-nb]) return 0;
for(int i=0;i<na;i++)
if(s[m-nb-1]!=s[m-nb-na-nb-nb-1]) return 0;
return 1;
}
int main()
{
f>>n>>m;
f>>s;
fibbo(1,1,2);
int ok=1;
for(int length2=1;ok,length2<=m/fibn2;length2++){
int length1=(m-fibn1*length2)/fibn2;
if(length1*fibn2==m-fibn1*length2){
int i=1,j=m-length2-length1+1,k=1;
if(ver(length1,length2)){
ok=0;
if(n%2==0)for(int i=length2;i<length2+length1;i++,k++)g<<s[i];
else
for(int i=0;i<length1;i++)g<<s[i];
g<<"\n";
for(int i=m-length2;i<m;i++,k++)g<<s[i];
}
}
}
return 0;
}