363. Squares Fixed

hosと競い合っているうちにぐんぐんコードが縮んでいきました。
最初は今の行と一行前の行の文字列をそれぞれ配列に持っていましたが、一つの配列をどんどん使っていくと上手く行きました。
(この方法を思いついた時、Brainfuckみたいだなーと思いました。)
98バイトごとにgets()していき、それをポインタ2つで見ていくという方法をとりました。
縮ませきれてない感じはありましたが、ほったらかしにしておいたらコード公開後にnnさんがすさまじい縮め方をしてきました。
特にputchar()の中はこんなにうまくいくのかーという感じです。


この問題を解いている時に気づいたのですが、

s[]={0,1};i,j;main(){printf("%d",s[i]+s[++i]);}

は2になるのに

s[]={0,1};i,j;main(){printf("%d",s[i]+s[j=++i]);}

は1になります。
前置インクリメントはいつも最初に評価されると思っていたのですがそうでもないみたいです。