Advertisement
jeff69

Untitled

Apr 24th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. /*
  2. ID:hsg2
  3. TASK:kimbits
  4. LANG:C++11
  5. */
  6. #include<bits/stdc++.h>
  7. using namespace std;
  8. int dp[50][50] , n , L , K;
  9. int calc(int x , int bits){
  10. if(bits > L) return 0;
  11. if(x == n+1) return 1;
  12. int &ret = dp[x][bits]; if(ret!=-1) return ret;
  13. ret = calc(x+1 , bits) + calc(x+1 , bits+1);
  14. return ret;
  15. }
  16. string sol;
  17. void find_sol(int x , int bits){
  18. if(x==n+1) return;
  19. if(calc(x+1 , bits) >= K) {
  20. sol+="0";
  21. find_sol(x+1 , bits);
  22. }
  23. else{
  24. K-=calc(x+1 , bits);
  25. sol+="1";
  26. find_sol(x+1 , bits+1);
  27. }
  28. }
  29. int main(){
  30. freopen("kimbits.in","r",stdin);
  31. freopen("kimbits.out","w",stdout);
  32. memset(dp , -1 , sizeof(dp));
  33. cin>>n>>L>>K;
  34. find_sol(1 , 0);
  35. cout<<sol<<endl;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement