とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

Phone Key Pad

また問題作ってみた。某PKUのパクりっぽい問題。
1002 -- 487-3279
自分のテストコードがバギーじゃないか心配だ…。

なぜなぜ?gccちゃん。

ローカル(VC6)ではコンパイル通るのにgccではエラー。
invalid operands to binary / って怒られる。なぜ?

p="1+     2ABCabc3DEFdef4GHIghi5JKLjkl6MNmn  7PRSprs8TUVtuv9WXYwxy*-     0OQZoqz#      \n";
main(c){for(;~(c=getchar());putchar((strchr(p,c)-p)/7)["123456789*0#\n"]);}

(strchr(p,c)-p) を int でキャストするといいみたいだが,いったい何型と見なされているんだ?

judge Janken (2)

そうそう,こういうのが正当な(?) hack ですね。この問題はかなり 3 にこだわったので,3 * 3 の表があるだけでうれしかったり。
Yahoo!ジオシティーズ - 七行プログラミングと short code
ちなみに私は cheat も正当な hack だと思っていますので,どうぞ,埋め込めなりなんなり行うべし。cheat するときの keyword も 3 ですね。
ヒントは

  • 文字コードに注目
  • 3進数10桁はintに入る
  • random は,そんな random にならない

あたりでしょうか。拡張された文字定数も使えば kurimura さん Ozy さんあたりの記録がでます。PKU1145祭を知っている人ならば常識ばかりなのですが,練習問題にはいいと思います。

そうそう

話は変わりますが,わたくしめもハッカーのたのしみ―本物のプログラマはいかにして問題を解くかを買って,流し読みした次第でございます。間違いなく良書。ショートコーダー,コードゴルファーは読むべし。

infix to postfix

久しぶりの success! 快感だな。
218Bになった。

if-elseがあったり,{}があったり,for文が壊れていたりしますが,リハビリなので勘弁して。

#define P )putchar(s[--p])
p,s[99],m[99];
main(c){
m[41]=1;m[43]=m[45]=2;m[42]=m[47]=3;m[40]=4;
for(;~(c=getchar());)
if(m[c]){
for(;p&&s[p-1]-40&&m[c]<=m[s[p-1]];P;
s[p++]=c;
p-=c-41?0:2;
}else{
if(c==10)
for(;p;P;
putchar(c);
}
}