Daily AlpacaHack 2026/02/28 の write-up です。
やったこと
えびちゃんは Polyglot が好きなのでうれしくなりました。
1 行しか受け取ってくれないので、1 行でやる方針を考えます(\r を使おうというのが過去にも出題されていますが忘れがち、少し反省)。
"""...""" などの連結の仕方が狙えるかと思ったものの JS だとうまくいってくれないようなので捨てました。
// を使う方針も浮かびはしましたが、面倒そうな気がしたので深追いしませんでした。
そういえば JS って NaN っていうのがあったよなと思って、NaN に代入したときどうなるんだっけというのを試しました。
> NaN = 0 0 > NaN NaN > NaN == NaN false
Python だと下記のようになります。
>>> NaN = 0 >>> NaN 0 >>> NaN == NaN True
あとはこれを使って適当にやればよさそうです。 両方の言語で共通して使えるリテラル・関数・メソッドがあれば楽に済ませられそうなので探します。
eval と [x, y][k] を使えばよさそうです。JS だと Boolean をそのまま添字に使えなさそうなので適当に変換します。
solve.txt
NaN=0; eval(['console.log("I LOVE SECCON")', 'print("I LOVE ALPACA")'][+(NaN==NaN)])
これができるのであれば、JS と Python で真偽・0/1 が変わる式クイズに帰着できるので、次のようなものも使えます。
1+2**53-2**53"aa".replace("a", "b") == "ba"(2**53+1)/3 == 3002399751580331
Wow... Alpaca{fluent in two languages} 👏
9つのC言語を操りたいです。最近の人に通じるのでしょうかこれ(?)。
あとがき
A-SIDE 3 ヶ月分と B-SIDE 1 ヶ月分を走り切って満足です。
おわり
おわりです。