Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8. vector<long long> answer;
  9. long long n, k, i = 0;
  10. double degree = 1;
  11. cin >> n >> k;
  12. if (n >= 1){
  13. while (degree * k < n) {
  14. degree *= 2;
  15. i++;
  16. }
  17. while (n >= 1) {
  18. if (n >= degree) {
  19. n -= degree;
  20. answer.push_back(i);
  21. }
  22. else {
  23. i--;
  24. degree /= 2;
  25. }
  26. }
  27. }
  28. /*
  29. if (n != 0) {
  30. while (degree * (k - answer.size()) > n) {
  31. degree /= 2;
  32. i--;
  33. }
  34. degree *= 2;
  35. i++;
  36. while (n != 0) {
  37. if (degree * (k - answer.size()) > n) {
  38. n -= degree;
  39. answer.push_back(i);
  40. }
  41. else {
  42. i++;
  43. degree *= 2;
  44. }
  45. }
  46. }
  47. */
  48. sort(answer.begin(), answer.end());
  49. for (i = answer.size() - 1; i > -1; i++) {
  50. cout << answer[i] << ' ';
  51. }
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement