///////////////////////////////////////////////////////////////////////
//
// bible.c
//
// smith_135@163.com
// QQ:58101543
// 2004.7.10
// copyright (c) meteor135
// version 1.0
//
///////////////////////////////////////////////////////////////////////
/*
#include <stdio.h>
main(t,_,a)char*a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,main(-86,0,a+1)+a))
:1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?main(2,_+1,"%s %d %d\n"):9 :
16 :t<0?t<-72?main(_,t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlw]!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/"):t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):
main((*a=='/')+t,_,a+1):0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
*/
///////////////////////////////////////////////////////////////////////
//"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry";
// !-------------------------------!
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
//
// @n'+,#'
// on the
//---------------------------------------------------------------------
// /*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/
// first second third fourth fifth sixth seventh eighth ninth tenth eleventh twelfth
//---------------------------------------------------------------------
// 'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!
// day of Christmas my true love gave to me
//---------------------------------------------------------------------
// /+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!
// twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
//---------------------------------------------------------------------
// /n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!
// nine ladies dancing, eight maids a-milking, seven swans a-swimming,
//---------------------------------------------------------------------
// /w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlw]!
// six geese a-laying, five gold rings,
//---------------------------------------------------------------------
// /*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!
// four calling birds, three french hens, two turtle doves
//---------------------------------------------------------------------
// nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/
// and a partridge in a pear tree.
//
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
#ifdef __TURBOC__
#include <conio.h>
#endif
#define END_DAY 12
#define START_DAY 1
#if !(START_DAY>0&&END_DAY<=12&&START_DAY<=END_DAY)
#error "error! START_DAY or END_DAY is not in range!"
#endif
const int START_DELIMITERS = 0;
const int NUMBERS_DELIMITERS = 13;
const int GIFTS_DELIMITERS = 13;
const char * decodeTbl=
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry";
const char * cryptograph=
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlw]!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/";
void decodeAndPrint(int d)
{
const char *pc = cryptograph;
while (d < 0)
{
if (*pc++ == '/')
{
d++;
}
}
while (*pc != '/')
{
const char *p = decodeTbl;
while (*p != *pc) p++;
putchar(p[31]);
pc++;
}
}
void start()
{
decodeAndPrint( - START_DELIMITERS );
}
void number(int n)
{
decodeAndPrint( - (START_DELIMITERS+n) );
}
void dayToMe()
{
decodeAndPrint( - (START_DELIMITERS+NUMBERS_DELIMITERS) );
}
void gift(int g)
{
decodeAndPrint( g - (START_DELIMITERS+NUMBERS_DELIMITERS+GIFTS_DELIMITERS) );
}
void gifts(int g, int n)
{
if (g < n)
gifts(g + 1, n);
if (g > 0)
gift(g);
}
void printBible(int n)
{
#ifdef __TURBOC__
static int temp = 0;
if(++temp%5==0)
getch();
#endif
start();
number(n);
dayToMe();
gifts(1, n);
if( n < END_DAY)
printBible(n + 1);
}
void main()
{
#ifdef __TURBOC__
clrscr();
#endif
printBible(START_DAY);
#ifdef __TURBOC__
getch();
#endif
}
/*
On the first day of Christmas my true love gave to me
a partridge in a pear tree.
On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.
On the third day of Christmas my true love gave to me
three french hens, two turtle doves
and a partridge in a pear tree.
On the fourth day of Christmas my true love gave to me
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the fifth day of Christmas my true love gave to me
five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the sixth day of Christmas my true love gave to me
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the seventh day of Christmas my true love gave to me
seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the eigth day of Christmas my true love gave to me
eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the ninth day of Christmas my true love gave to me
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the tenth day of Christmas my true love gave to me
ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the eleventh day of Christmas my true love gave to me
eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
*/