My original fix no longer worked, at least with clang in some systems, because of more strictness in the compiler wrt implicit ints. As the code does not use the Makefile but rather 'cc' (and in an unusual way) 'main()' now has an explicit int. Also, what was previously documented as a bug to be fixed has been changed to INABIAF as it was documented already. Thus it should not be fixed. In fact the judges originally noted that if one specifies the triggering input they should expect an infinite loop and compilation failure.
21 lines
759 B
C
21 lines
759 B
C
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#define QQ 1
|
|
#define TT 1
|
|
#define cc int main(c,v) int c; char **v;{char tt[12],qq[7]; int q=0,o=1,l=1,m=1;struct {int c;} f;
|
|
#define ouroboros qq[6]='\0';tt[11]='\0';if(QQ==atoi(v[1])+1){(void)fprintf(stderr,"%s factorial = %d\n",v[1], TT);exit(1);}o=c+f
|
|
#define x ;while(EOF!=(o=getchar())){if(l && q=='Q' && o=='Q'){l=0;(void)getchar();(void)fread(qq,6,1,stdin);(void)printf("Q %6d",atoi(qq)+1);}else
|
|
if(m && q=='T' && o=='T'){m=0;(void)fread(tt,11,1,stdin);(void)printf("T %9d\n",atoi(tt)*QQ);}else {q=o;(void)putchar(o);}}exit(0);}
|
|
cc ouroboros.c -o x
|
|
#define zxc ;{/*
|
|
cat ouroboros.c | ./x $1 > x1
|
|
if [[ $? -ne 0 ]]; then
|
|
exit
|
|
fi
|
|
mv x1 ouroboros.c
|
|
chmod +x ouroboros.c
|
|
exec ./ouroboros.c $1
|
|
exit
|
|
*/
|