はっぴぃ☆わぁるど

思考垂れ流す肥溜め

コードの変化

ABCを一通りやってACできなかった過去の自分の提出コードを見てると、競プロやり始めてからコードの書き方がかわったような気がする。具体的にいうと

・マクロの多様

・よくわからない変数名

STLマンセー

 といった感じだ。STLに関しては別に悪いことじゃないと思う。例えばmin,maxは自分で二項演算子でかけるだろうけど、それを書けばコードが長くなって可読性が下がる気がする。それよりも一つの命令で書いてあった方が全体の中で何をしているのかがわかりやすい。それが自分で書くと4行とか掛かってしまうコードとかでは如実に出ると思う。役割でのオブジェクト指向みたいなそんな感じだ。

 マクロの多様については判断を任せたい。僕的にはREP(i,n)REP(i,m)って書いた方がすっきりしてタイプも減って可読性が高いと思うのだけれど、なれない人にはわかりにくいだろう。for(int i=0;i<n;i++)を打つのに10秒くらいかかるけどREP(i,n)は3秒くらいでできる(タイプが遅いのは勘弁)

 変数名が適当なのは競プロが悪いのではない。単純に僕が英単語を知らなくて適切な長さの英単語の変数をつけることができないだけである。

コンテスト中辞書引いて適切な単語を使おうということにはならず、その場で適当な変数を作る。のでそんな感じになってしまうのである。これに関してはプログラマが使うような英単語はだいたい限られているので人のコードを読んで使える英単語の幅を増やそうということだ。