Pagini recente » Cod sursa (job #281379) | onis-2014/clasament | Cod sursa (job #2880064) | Cod sursa (job #722944) | Cod sursa (job #2751874)
#include <fstream>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
long long a[36];
void rezolv(int stanga , int dreapta , long long k ){
for(int i = stanga ; i <= dreapta ; ++i)
if (k > a[i - stanga] * a[dreapta - i])
k -= a[i - stanga] * a[dreapta - i];
else {
g << i << " ";
rezolv(stanga, i - 1, 1 + (k - 1) / a[dreapta - i]);
long long x = k % a[dreapta - i];
if (x == 0)
x = a[dreapta - i];
rezolv(i + 1, dreapta, x);
i=dreapta+1;
}
}
int main() {
long n,k;
f>>n;
f>>k;
a[0]=1;
a[1]=1;
for(int i = 2 ; i <= n ; ++i)
for( int j = 0 ; j < i ; ++j)
a[i]+=a[i-j-1]*a[j];
rezolv(1,n,k);
return 0;
}