Pagini recente » Cod sursa (job #2286833) | Cod sursa (job #2101863) | Cod sursa (job #1614607) | Cod sursa (job #1161846) | Cod sursa (job #1744642)
#include <fstream>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream cin("lampa.in");
ofstream cout("lampa.out");
char s[3100000];
string A, B, C;
int n, m, a, b;
void Check(int a, int b) {
int i, k = a + b;
for (i = 2; i < A.size(); i++)
if (A[0] == '1')
if (A[i] == '1')
if (memcmp(s, s + k, a))
return;
else
k += a;
else
if (memcmp(s + a, s + k, b))
return;
else
k += b;
else
if(A[i]=='1')
if (memcmp(s + b, s + k, a))
return;
else
k += a;
else
if (memcmp(s, s + k, b))
return;
else
k += b;
if (A[0] == '1'){
for (i = 0; i < a; i++)
cout << s[i];
cout << "\n";
for (i = a; i < a + b; i++)
cout << s[i];
}
else{
for (i = b; i < a + b; i++)
cout << s[i];
cout << "\n";
for (i = 0; i < b; i++)
cout << s[i];
}
exit(0);
}
int main() {
int i;
cin >> n >> m;
cin >> s;
a = 1;
b = 0;
A = "1";
B = "2";
for (i = 1; i < n; i++) {
if (i != n - 1)
C = A + B;
A = B;
B = C;
b += a;
a = b - a;
}
for(i = 1; i < m / a + 1; i++)
if ((m - i * a) % b == 0)
Check(i, (m - i * a) / b);
cout << "0";
return 0;
}