Cod sursa(job #1898971)
Utilizator | Ababei Daniel Googal | Data | 2 martie 2017 14:09:21 |
---|---|---|---|
Problema | Planeta | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <fstream>
using namespace std;ifstream fin("planeta.in");ofstream fout("planeta.out");long long n,k,d[35][35][35],s[35];void solve(){int i,j;s[0]=1;for(i=1; i<=n; i++)for(j=1; j<=i; j++)s[i]+=s[j-1]*s[i-j];}void Find(int a, int b, long long k){long long i,r=0;for(i=a; r+s[i-a]*s[b-i]<k && i<b; i++)r+=s[i-a]*s[b-i];fout<<i<<' ';if(a<=i-1)Find(a,i-1,(k-r-1)/s[b-i]+1);if(i+1<=b)Find(i+1,b,(k-r-1)%s[b-i]+1);}int main(){fin>>n>>k;fin.close();solve();Find(1,n,k);fout.close();return 0;}