終わりました。
ぎりぎりで80Byteまではいきましたが一番の鬼門は
256になったら0にする、でした。
IncでもDecでもSqrでもなりうるので別に計算してたんですが・・・
Topの皆さん、掛け算の中だけで処理してらっしゃるw
やっぱテストケースをしっかり見ないと縮みませんね。
僕の解答は
a;main(c){for(;gets(&c);a*=a!=256)c&1?c&4?printf("%d\n",a):c&2?a*=a:a++:a&&a--;}
の80Byte
で、256になる掛け算のみに注力すると
a;main(c){for(;gets(&c);)c&1?c&4?printf("%d\n",a):c&2?a*=a%8?a:0:a++:a&&a--;}
で77Byte
ポイントは
入力は1行2バイトなので文字列として取り込んでも問題なし。むしろ改行コードは外れるのでOK。
下三ビットでコマンド判別
デクリメントはa=0では計算しない
終了コマンドは必ず最後なので特に考えなくてよい。
256になるのは掛け算のみ(つまり16^2)なのでそこだけはじく。
ということで最後のポイントだけ気づきませんでした。
0 件のコメント:
コメントを投稿