環境依存
手元で動かないけどサーバー側では動くコードも当然あるんだよね・・・
googleの55Bコードはまさにそれだった。
エラーで落ちてたからてっきり駄目なのかと思ってたのに。
仮想環境でサーバーと同じ環境作ろうかなあ。
delete last line
入力された文章の最後の行を消せっていう問題。
どうやって最後の行を探すか悩んだけど、とりあえず最後の改行を探してそこまで出力することに。
でもテストケースの最後の行にも改行が付いているようで、それ対策にちょっとコードが長くなってしまった。
それさえなければもっと短くできるのになあ。今のところ65B。
76B版もついでに。
76B
char c[]; i, n; main() { for(n = read(0, c, 999) - 2; i < n;) c[n] - 10 ? n-- : putchar(c[i++]); }
65B
char c[]; main(n) { for(n = read(0, c, 999) - 1; c[--n] - 10;); write(1, c, n); }
入力が1行だけだと大体writeに渡してるnが負の数になってしまって凄いことになる。
writeの第3引数はunsignedで受け取るっていうのを学習しました・・・
sort characters
id:ichirin2501さんがやってらしたので影響されてやってみた。
この問題はqsortのコールバック関数をどこまで縮められるかだと思う。
自力でコールバック関数を書いてやってみたけど当然長くなってしまった。77B。
コールバック関数を自作した以外はまるっきり同じコードという結果に。
トップの52Bがいかに凄いか実感した。
c[]; f(char *p, char *q) { return *p - *q; } main() { qsort(c, read(0, c, 999), 1, f); puts(c); }