問題 | https://paiza.jp/poh/kirishima |
---|---|
C/Go/C#/VB/JavaScript | http://qiita.com/cielavenir/items/aad18ccc8463e77a1c87 |
Java/CoffeeScript/Ruby/PHP/Python | http://qiita.com/cielavenir/items/d07e62d1dc61c2915003 |
Perl/Scala/F#/D | http://qiita.com/cielavenir/items/0b338f5c1b2e57ed915e |
最速解答 | http://qiita.com/cielavenir/items/2afc31eb9718e3170755 |
Swift | http://qiita.com/cielavenir/items/16440e1e3713a41a3830 |
https://github.com/cielavenir/paiza_solutions/blob/master/poh3/poh3.rb
の終わりのあたりを見ていただきたい。
if M==75 && N==10 #case5
raise if j>='102001122'.to_i(3)
p -1 if j>='102001121'.to_i(3)
else
raise
end
p j
ご覧のように、RE/WA/ACを使って3分法で解答を確定させていくことができる。
また、適当に閾値を測ることで、入力も確定させることができる。
このようにして、入力と解答の組を決定することが出来れば、多言語による解答が容易になる。
実際、全言語で満点を取ることができたが、Bash/COBOL/Erlang/Haskell/Rはこの手法による解答しか行っていない。
そしてRに至っては 唯一の満点答案 になってしまった。申し訳ない気分である。
※ただし、ec-campaignをRで試しに解いた限りではサイズ的にTLEは不可避であり、従って時間制限をせめてPerl/PHP等と同じにすべきである旨提案はさせて頂いていたので、それを無視した意味では申し訳なく感じなくても良いのかもしれない。
実際の答案についてはリンク先の親ディレクトリを参照されたい。