fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. vector<int> branch(int n){
  7. vector<int> v;
  8. if(n<=0) return v;
  9. int p = 1<<20; // n < 10^6
  10. while(p){
  11. if(p&n){
  12. n -= p;
  13. v.push_back(p-1-n);
  14. }
  15. p >>= 1;
  16. }
  17. reverse(v.begin(), v.end());
  18. return v;
  19. }
  20.  
  21. void printZeros(int x){
  22. while(x--) cout<<'0'<<' ';
  23. }
  24.  
  25. void print(int a, int i, vector<int> &v){
  26. if(!i--){
  27. cout<<a<<' ';
  28. return;
  29. }
  30. print(a,i,v);
  31. printZeros(v[i]);
  32. print(a,i,v);
  33. }
  34.  
  35. void f(int n, int a){
  36. vector<int> v = branch(n);
  37. print(a,v.size(),v);
  38. }
  39.  
  40. int main() {
  41. int t;
  42. int n, a;
  43. vector<int> v;
  44. cin>>t;
  45. while(t--){
  46. cin>>n>>a;
  47. f(n-1,a);
  48. cout<<endl;
  49. }
  50. return 0;
  51. }
Success #stdin #stdout 0.01s 5284KB
stdin
16
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
11 1
12 1
13 1
14 1
15 1
16 1
stdout
1 
1 1 
1 0 1 
1 1 1 1 
1 0 0 0 1 
1 1 0 0 1 1 
1 0 1 0 1 0 1 
1 1 1 1 1 1 1 1 
1 0 0 0 0 0 0 0 1 
1 1 0 0 0 0 0 0 1 1 
1 0 1 0 0 0 0 0 1 0 1 
1 1 1 1 0 0 0 0 1 1 1 1 
1 0 0 0 1 0 0 0 1 0 0 0 1 
1 1 0 0 1 1 0 0 1 1 0 0 1 1 
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1