雑記

長文で語りたいこと書いてます。

ABC074C "Sugar Water"でぶちぎれた話(プログラミング分からない人でも読める話です)

みなさんはABC074C "Sugar Water"を解いたことがあるでしょうか。

こういう問題です。

f:id:serenn_ft:20190101012259p:plain

要するにいくつかの制約を与えるから砂糖水の濃度を一番濃くしてその時の砂糖水と砂糖の質量を出力しろよっていう問題です.

まず最初にA,B,C,Dの値から一意に求める値が数式化できないか考えましたがまあ数秒考えて諦めました.

次に考えることは脳筋究極奥義全探索ですね.

上手くfor文を回せば計算量は高々O(F^2)止まりだと考えたので3000^2 = 9×10^6ということで3sもあればRubyですらギリギリ通ると考えました.

ここまでは合ってました.しかしここから問題が発生しました.

01.txtというテストケースで永遠にWA(Wrong Answer,つまり間違いのこと)を出し続けました.細かい部分を調整し続けましたが治りません.

そこでみんなのコードを見てみるとどうやら濃度0が最大値を取るとき0 0と出力したらWA扱いされるそうなのです.

僕のプログラムはindexを用いていたので言うまでもなくindexの特性上0 0が出力されてしまいます.

しかしこれは少しおかしな話で実は問題文にはどこにもいずれかの操作を必ず1回は行わなければならないとは書いてありません.

つまり砂糖水0gの砂糖水を作成したと主張すればセーフなはずなのです(???)

しかしこれはまあ明らかに詭弁スレスレなのでなんらかの理によって崩壊する,いわば言いがかりです.

ただ個人的にはいずれかの操作は必ず一回は行わなきゃいけないよとか書いていてほしかったですね...

以上です.

若干虚無な年明けを迎えてしまった.

 

最後に僕のコードを貼ります.

最近消費したコンテンツの五等分の花嫁から名前をもらって配列を作りました.

f:id:serenn_ft:20190101014103p:plain

f:id:serenn_ft:20190101014110p:plain