char a[99999],b[99999],c[99999];\x0d char *q,*p=b+5000;\x0d i;\x0d main(){\x0d for(;gets(q=a);){\x0d for(;*q;q+=2){\x0d *p=*q; p[1]=0;\x0d while(((p[-800]>0 && p[-800]<48) || p[-800]==94) && isdigit(p[-400]) && isdigit(*p)){\x0d sprintf(c,"%s %s %s",p-400,p,p-800);\x0d sprintf(p-800,"%s",c);\x0d p-=800;\x0d }\x0d p+=400;\x0d /*\x0d for(i=0;i<10;i++){\x0d printf("[%s]",b+5000+i*400);\x0d }puts("");\x0d */\x0d }\x0d puts(p=b+5000);\x0d bzero(b,99999);\x0d }\x0d }\x0d
Note that non-ascii characters in the above source code will be escaped (such as \x9f).