Pagini recente » Cod sursa (job #1401136) | Cod sursa (job #2600666) | Cod sursa (job #2533052) | Cod sursa (job #1606711) | Cod sursa (job #2751867)
#include <fstream>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
void rezolv(int stanga , int dreapta , long long k ,int a[]){
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],a);
long long x= k%a[dreapta-i];
if(x==0)
a[dreapta-i];
rezolv(i+1,dreapta,x,a);
i=dreapta+1;
}
}
int main() {
int n,k;
int a[31];
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,a);
return 0;
}