fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4.  
  5. int main() {
  6. int t;
  7. cin>>t;
  8. while(t--) {
  9. ll n,k;
  10. cin>>n>>k;
  11. if(n%2==0) {
  12. if(k==1) {
  13. for(int i=0;i<n;i++)
  14. cout<<1<<' ';
  15. cout<<endl;
  16. }
  17. else {
  18. ll temp=k;
  19. ll power=1;
  20. ll val=0;
  21. while(temp/power>0) {
  22. val+=power;
  23. power*=2;
  24. }
  25. ll val1;
  26. if(k!=val)
  27. val1=val-k;
  28.  
  29. else {
  30. val1=1;
  31. k-=1;
  32. }
  33. cout<<k<<' '<<val1<<' ';
  34. for(int i=2;i<n;i++)
  35. cout<<1<<' ';
  36. cout<<endl;
  37. }
  38. }
  39.  
  40. else {
  41. if(n<3) {
  42. cout<<k<<endl;
  43. }
  44. else if(k==1) {
  45. for(int i=0;i<n;i++)
  46. cout<<1<<' ';
  47. cout<<endl;
  48. }
  49. else if(k==2) {
  50. cout<<2<<' ';
  51. for(int i=1;i<n;i++)
  52. cout<<1<<' ';
  53. cout<<endl;
  54. }
  55. else if(k==3) {
  56. cout<<3<<' ';
  57. for(int i=1;i<n;i++)
  58. cout<<1<<' ';
  59. cout<<endl;
  60. }
  61. else {
  62. ll temp=k;
  63. ll idx=floor(log2(temp));
  64. cout<<pow(2,idx)<<' '<<pow(2,idx-1)<<' ';
  65. ll power=1;
  66. ll val=0;
  67. while(temp/power>0) {
  68. val+=power;
  69. power*=2;
  70. }
  71. ll third=val-pow(2,idx)-pow(2,idx-1);
  72. cout<<third<<endl;
  73. }
  74. }
  75. }
  76. return 0;
  77. }
Success #stdin #stdout 0s 4544KB
stdin
Standard input is empty
stdout
Standard output is empty