Pagini recente » Cod sursa (job #3243711) | Cod sursa (job #2498540) | Cod sursa (job #3278073) | Borderou de evaluare (job #2432007) | Cod sursa (job #307198)
Cod sursa(job #307198)
#include <cstdio>
#include <iostream>
using namespace std;
int n, m, i, j, k, sz, l1, l2;
string s, sol1, sol2, c1, c2;
int fib[40];
int main() {
freopen("lampa.in", "r", stdin);
freopen("lampa.out", "w", stdout);
scanf("%d %d ", &n, &m);
cin>>s;
sz = s.size() - 1;
fib[1] = fib[2] = 1;
for (i = 3; i < 40; i++)
fib[i] = fib[i - 1] + fib[i - 2];
for (i = 1; i <= m; i++)
sol1 += 'z';
// printf("%d\n", fib[30]);
for (i = 1; i * fib[n - 2] <= m; i++) {
l1 = i;
if ((m - fib[n - 2] * l1) % fib[n - 1] == 0) {
l2 = (m - fib[n - 2] * l1) / fib[n - 1];
c1.clear();
c2.clear();
for (j = sz - l2 + 1; j <= sz; j++)
c2 += s[j];
for (j = sz - l2 - l1 + 1; j <= sz - l2; j++)
c1 += s[j];
if (c1 < sol1) {
sol1 = c1;
sol2 = c2;
}
}
}
cout<<sol1<<"\n"<<sol2<<"\n";
return 0;
}