Large numbers using C++		 						2013/04/23 ck5t
	C++ 言語を用いて出来るだけ大きな数を表現する
	int main(); がで出来るだけ大きな値を返すようにする
	C++ は ISO/IEC 14882:2003 準拠とする
	ただし、"int" "float" "double" で表現できる値は十分大きいものとする
		事実上無限ビットあると考えて良い
		あくまで「十分大きい」なので、ちゃんと負の数に対するビット演算なども使える
		でもintのサイズに依存した値になるコードはNG
	環境依存の動作、環境依存の値を返すものはNG
		上記ルールと ISO/IEC 14882:2003 とで
		mainの戻り値が1個の値に定まらないようなものはNG
	pre-processor 使用禁止
		#define, #include などの禁止
		コンパイラなどに指定するマクロも禁止
		__FILE__ や __LINE__ などの組み込みマクロも使用禁止
	ライブラリ関数や外部ファイル定義の関数や変数の使用禁止
		pow, quit などの外部関数や変数の使用禁止
	実行時間やメモリ使用量は問わない
		new で確保したメモリは解放しなくていい
------------------------------------------------------------------------------------
int main(){return 9;} // 21
int main(){return 99;} // 22
int main(){return 9E9;} // 23
int main(){return 9E99;} // 24
int main(){return 9E999;} // 25
int main(){return 9E9999;} // 26
int main(){return 9E99999;} // 27
int main(){return 9E999999;} // 28
int main(){return 9E9999999;} // 29
int main(){return 9<<(9<<99);} // 30
int main(){return 9<<(9<<999);} // 31
int main(){return 9<<(9<<9999);} // 32
int main(){return 9<<(9<<99999);} // 33
int main(){return 9<<(9<<999999);} // 34
int main(){return 9<<(9<<(9<<99));} // 35
int main(){return 9<<(9<<(9<<999));} // 36
int main(){return 9<<(9<<(9<<9999));} // 37
int main(){return 9<<(9<<(9<<99999));} // 38
int main(){return 9<<(9<<(9<<999999));} // 39
int main(){return 9<<(9<<(9<<(9<<99)));} // 40
int main(){return 9<<(9<<(9<<(9<<999)));} // 41
int A;int main(){return++A-9?9<C(D):E};return!G*A?E:new B(C);}B*F,*G;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 141 F[ε_0]
int A;struct B{B*C(int D){B*E=99+D?C(D-1):F,C={E,G?G->C(D):E};return!G*A?E:new B(C);}B*F,*G;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 142
int A;struct B{B*C(int D){B*E=9E9+D?C(D-1):F,C={E,G?G->C(D):E};return!G*A?E:new B(C);}B*F,*G;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 143
int A;struct B{B*C(int D){B*E=9E99+D?C(D-1):F,C={E,G?G->C(D):E};return!G*A?E:new B(C);}B*F,*G;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 144
int A;struct B{B*C(int D){B*E=9E999+D?C(D-1):F,C={E,G?G->C(D):E};return!G*A?E:new B(C);}B*F,*G;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 145
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9););return B.G;} // 146 F[φ(ω,0)]
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=99););return B.G;} // 147
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9E9););return B.G;} // 148
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9E99););return B.G;} // 149
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9E999););return B.G;} // 150
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9E9999););return B.G;} // 151
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9E99999););return B.G;} // 152
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9E999999););return B.G;} // 153
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9E9999999););return B.G;} // 154
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9<<(9<<99)););return B.G;} // 155
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G-!F};return G?new A(B):D;}A*E,*F;int G;}B,*C=&B;int main(){for(;C=C->B(B.G+=9<<(9<<999)););return B.G;} // 156
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?G-!F:C,H-!G};return H?new A(B):D;}A*E,*F;int G,H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9););return B.H;} // 157 F[φ(ω^2,0)]
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?G-!F:C,H-!G};return H?new A(B):D;}A*E,*F;int G,H;}B,*C=&B;int main(){for(;C=C->B(B.H+=99););return B.H;} // 158
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?G-!F:C,H-!G};return H?new A(B):D;}A*E,*F;int G,H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9E9););return B.H;} // 159
int A;struct B{B*C(int D){B*E=9+D?C(D-1):F,C={E,G?G->C(D):E,H?G?H:H->C(D):E};return!H*A?E:new B(C);}B*F,*G,*H;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 160 F[Γ_0]
int A;struct B{B*C(int D){B*E=99+D?C(D-1):F,C={E,G?G->C(D):E,H?G?H:H->C(D):E};return!H*A?E:new B(C);}B*F,*G,*H;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 161
int A;struct B{B*C(int D){B*E=9E9+D?C(D-1):F,C={E,G?G->C(D):E,H?G?H:H->C(D):E};return!H*A?E:new B(C);}B*F,*G,*H;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 162
int A;struct B{B*C(int D){B*E=9E99+D?C(D-1):F,C={E,G?G->C(D):E,H?G?H:H->C(D):E};return!H*A?E:new B(C);}B*F,*G,*H;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 163
int A;struct B{B*C(int D){B*E=9E999+D?C(D-1):F,C={E,G?G->C(D):E,H?G?H:H->C(D):E};return!H*A?E:new B(C);}B*F,*G,*H;}C,*D=&C;int main(){for(;D=D->C(A);)++A;return A;} // 164
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9););return B.H;} // 165 F[φ(ω,0,0)]
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=99););return B.H;} // 166
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9E9););return B.H;} // 167
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9E99););return B.H;} // 168
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9E999););return B.H;} // 169
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9E9999););return B.H;} // 170
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9E99999););return B.H;} // 171
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9E999999););return B.H;} // 172
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9E9999999););return B.H;} // 173
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9<<(9<<99)););return B.H;} // 174
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H-!G};return H?new A(B):D;}A*E,*F,*G;int H;}B,*C=&B;int main(){for(;C=C->B(B.H+=9<<(9<<999)););return B.H;} // 175
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H?H-!G:C,I-!H};return I?new A(B):D;}A*E,*F,*G;int H,I;}B,*C=&B;int main(){for(;C=C->B(B.I+=9););return B.I;} // 176 F[φ(ω^2,0,0)]
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H?H-!G:C,I-!H};return I?new A(B):D;}A*E,*F,*G;int H,I;}B,*C=&B;int main(){for(;C=C->B(B.I+=99););return B.I;} // 177
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H?H-!G:C,I-!H};return I?new A(B):D;}A*E,*F,*G;int H,I;}B,*C=&B;int main(){for(;C=C->B(B.I+=9E9););return B.I;} // 178
struct A{A*B(int C){A*D=C?B(C-1):E,B={D,F?F->B(C):D,G?F?G:G->B(C):D,H?H-!G:C,I-!H};return I?new A(B):D;}A*E,*F,*G;int H,I;}B,*C=&B;int main(){for(;C=C->B(B.I+=9E99););return B.I;} // 179
struct A{A*B(int C,A*D=0){A*E=C?B(C-1):F,B={G?G->B(C,2B(C.H+=9););return C.H;} // 180 F[Bachmann-Howard ordinal]