Pagini recente » Cod sursa (job #3174770) | Cod sursa (job #2942022) | Cod sursa (job #1575653) | Cod sursa (job #1051929) | Cod sursa (job #1798838)
#include <bits/stdc++.h>
using namespace std;
#define MAX 3040010
ifstream f("lampa.in");
ofstream g("lampa.out");
char a[MAX];
int n,m,na,nb,dp[30][2];
bool ok(int na,int nb)
{
for(int p=0;p<nb;p++)
if(a[m-p-1]!=a[m-p-1-na-nb]||a[m-p-1]!=a[m-p-1-na-nb-nb]) return 0;
for(int i=0;i<na;i++)
if(a[m-nb-1]!=a[m-nb-na-nb-nb-1]) return 0;
return 1;
}
void print()
{
double lgb=0;
for(lgb=m/nb;lgb>0;lgb--)
{
if((int)(m-lgb*nb)/na==(double)(m-lgb*nb)/na)
if(ok((m-lgb*nb)/na,lgb))
{
for(int i=m-lgb-((m-lgb*nb)/na);i<m-lgb;i++) g<<a[i];
g<<'\n';
for(int j=m-lgb;j<m;j++) g<<a[j];
return;
}
}
g<<0;
}
int main()
{
f>>n>>m;
f.getline(a,MAX);
f.getline(a,MAX);
dp[0][0]=dp[1][1]=1;
for(int i=2;i<n;i++)
{
dp[i][0]=dp[i-1][0]+dp[i-2][0];
dp[i][1]=dp[i-1][1]+dp[i-2][1];
}
na=dp[n-1][0];
nb=dp[n-1][1];
print();
return 0;
}