fork download
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. long long a = 2;
  6.  
  7. class T
  8. {
  9. public:
  10. virtual bool next() = 0;
  11. virtual T* max() = 0;
  12. virtual void dump() = 0;
  13. };
  14.  
  15. int len(T **l)
  16. {
  17. int i=0;
  18. while(l[i])++i;
  19. return i;
  20. }
  21.  
  22. class Leaf : public T
  23. {
  24. public:
  25. long long i;
  26.  
  27. virtual bool next()
  28. {
  29. ++a;
  30. return i-->0;
  31. }
  32.  
  33. virtual T* max()
  34. {
  35. Leaf *l=new Leaf();
  36. l->i=a;
  37. return l;
  38. }
  39.  
  40. virtual void dump()
  41. {
  42. cout<<i<<" ";
  43. }
  44. };
  45.  
  46. class List : public T
  47. {
  48. public:
  49. T **list;
  50.  
  51. virtual bool next()
  52. {
  53. int i=0;
  54. while(list[i] && !list[i]->next())
  55. {
  56. list[i]=list[i]->max();
  57. ++i;
  58. }
  59. if(!list[i])
  60. {
  61. return false;
  62. }
  63. return true;
  64. }
  65.  
  66. virtual T*max()
  67. {
  68. List *l=new List();
  69. l->list=new T*[a+1];
  70. for(int i=0;i<a;++i)
  71. {
  72. l->list[i]=list[0]->max();
  73. }
  74. l->list[a]=0;
  75. return l;
  76. }
  77.  
  78. virtual void dump()
  79. {
  80. cout<<"[";
  81. for(int i=0;list[i];++i)
  82. {
  83. list[i]->dump();
  84. }
  85. cout<<"]";
  86. }
  87. };
  88.  
  89. T *generate(T *t)
  90. {
  91. List *l = new List();
  92. l->list=new T*[a+1];
  93. for(int i=0;i<a;++i)
  94. {
  95. l->list[i]=t->max();
  96. }
  97. l->list[a]=NULL;
  98. return l;
  99. }
  100.  
  101. int main()
  102. {
  103. Leaf l;
  104. T* t=generate(&l);
  105. for(int i=0;i<a;++i)
  106. {
  107. t=generate(t);
  108. }
  109. t->dump();
  110. cout<<endl;
  111. while(t->next() && a <= 100)
  112. {
  113. t->dump();
  114. cout<<endl;
  115. }
  116. return a;
  117. }
Runtime error #stdin #stdout 0s 3464KB
stdin
Standard input is empty
stdout
[[[2 2 ][2 2 ]][[2 2 ][2 2 ]]]
[[[1 2 ][2 2 ]][[2 2 ][2 2 ]]]
[[[0 2 ][2 2 ]][[2 2 ][2 2 ]]]
[[[5 1 ][2 2 ]][[2 2 ][2 2 ]]]
[[[4 1 ][2 2 ]][[2 2 ][2 2 ]]]
[[[3 1 ][2 2 ]][[2 2 ][2 2 ]]]
[[[2 1 ][2 2 ]][[2 2 ][2 2 ]]]
[[[1 1 ][2 2 ]][[2 2 ][2 2 ]]]
[[[0 1 ][2 2 ]][[2 2 ][2 2 ]]]
[[[12 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[11 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[10 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[9 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[8 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[7 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[6 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[5 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[4 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[3 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[2 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[1 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[0 0 ][2 2 ]][[2 2 ][2 2 ]]]
[[[27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[25 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[24 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[23 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[22 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[21 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[20 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[19 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[18 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[17 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[16 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[15 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[14 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[13 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[12 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[11 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[10 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[9 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[8 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[7 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[6 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[5 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[4 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[3 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[2 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[1 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[0 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[56 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[55 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[54 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[53 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[52 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[51 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[50 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[49 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[48 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[47 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[46 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[45 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[44 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[43 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[42 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[41 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[40 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[39 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[38 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[37 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[36 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[35 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[34 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[33 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[32 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[31 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[30 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[29 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[28 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[27 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[26 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[25 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[24 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[23 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[22 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[21 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[20 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[19 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[18 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[17 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[16 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[15 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[14 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]
[[[13 26 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 ][1 2 ]][[2 2 ][2 2 ]]]