友人が「訳の分からない設定のプログラム問題があるんだけど、100点の画像見せてよ」とかいっていたので、やってみました。
……本当に意味の分からない設定です。なんで社長令嬢がプログラマになっているのか。
「途中まで書いたプログラムを書き直す」って、もはや一から書かないといけないでしょうこれは……
11200 円の大根って……
まあいろいろツッコミ待ちな問題なのですが、数学的におもしろいかな~とか考えて挑戦してみたのですね。
……7時間かかりました。
そもそも C++ いじるのが久しぶりで new とかの文法忘れてた(おい
for 文が4重に入れ子になってる酷いコードなのでデバッグも難しい。
たいてい上手く動かないのは変数を初期化してないのが原因。初心者以下な気が。
最後に事例1では上手く動くのに2では上手く動かないという問題に遭遇した。随分悩んだのに分からず、風呂に入っていたら気づきました。
「同じ商品を2個選ばない」条件を忘れていた……!
結果:http://paiza.jp/poh/ec-campaign/result/82247b2f29262fc82bd030b599b7c49d
よく分からないのが、最小値を求める函数をはじめは http://www.entis.jp/doc/lolita_programing/lolita2.html の方法でかいて条件分岐を使わないようにして Case3 が 0.95 秒、なんとなくそのあとに普通に条件分岐を使って書き直したものでは 0.81 秒。
そんなにもコンパイラの最適化が凄いのでしょうか。それともたまたま時間によって変わっただけなのでしょうか。
それにしても Case3 で 0.01 秒は凄いな~と。いつかそういう高みに行きたいですね。