Cで息抜き
C++をC++らしく書けるようになるっていう課題もあるけど息抜きにCでゴルフ。
アルゴリズムを考えるだけなら言語は関係無いよね!
exit status
プログラム終了時のステータスを表示しろっていう問題。だと思う。
お得意の先頭の文字だけ見て判別する方法で決めうちする。それでも46B。
29Bって何やってるんだろう。乱数で運任せしたのかなあ。
main(i) { gets(&i); puts(i & 2 ? "1" : i & 1 ? "255" : "0"); }
show the way
道案内をしろっていう問題。最初問題の意味がよくわからなかった・・・
多分、最初の1行目に目的地に行くまでのチェックポイントの数、続く10行にスタート地点からの地図が渡される。
0からスタートして1、2〜と辿って行くのに上下左右どう進めばいいか表示しろ、ということでいいんだと思う。
これも決めうちしようかと思ったけど、真面目に解いてみようとやってみた。今のところ160B。
二次元配列を使うか迷ったけども、物は試しで一次元配列に挑戦。
一次元配列でも11離れた所(改行コードが入るから)に別の行の同じ列が来るので気をつければ解ける。
93Bは決めうちっぽいけど131Bは普通に解いてる予感。どちらも凄いなあ。
char m[112]; c, j; main(i) { read(0, m, 111); for(; j + 48 <= *m; i++) c ? m[i] == j + 48 ? puts(c - i > 0 ? c - i > 9 ? "top" : "left" : c - i < -9 ? "bottom" : "right"), c = i, i = 1, j++ : 0 : m[i] == 48 ? c = i, i = j = 1 : 0; }