#include<iostream> using namespace std; long long a = 2; class T { public: virtual bool next() = 0; virtual T* max() = 0; virtual void dump() = 0; }; int len(T **l) { int i=0; while(l[i])++i; return i; } class Leaf : public T { public: long long i; virtual bool next() { ++a; return i-->0; } virtual T* max() { Leaf *l=new Leaf(); l->i=a; return l; } virtual void dump() { cout<<i<<" "; } }; class List : public T { public: T **list; virtual bool next() { int i=0; while(list[i] && !list[i]->next()) { list[i]=list[i]->max(); ++i; } if(!list[i]) { return false; } return true; } virtual T*max() { List *l=new List(); l->list=new T*[a+1]; for(int i=0;i<a;++i) { l->list[i]=list[0]->max(); } l->list[a]=0; return l; } virtual void dump() { cout<<"["; for(int i=0;list[i];++i) { list[i]->dump(); } cout<<"]"; } }; T *generate(T *t) { List *l = new List(); l->list=new T*[a+1]; for(int i=0;i<a;++i) { l->list[i]=t->max(); } l->list[a]=NULL; return l; } int main() { Leaf l; T* t=generate(&l); for(int i=0;i<a;++i) { t=generate(t); } t->dump(); cout<<endl; while(t->next() && a <= 100) { t->dump(); cout<<endl; } return a; }
Standard input is empty
[[[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 ]]]