【AtCoderBeginnerContest121 C】勝つために苦手な剣を手に取ることにした話

2019年8月20日

スポンサードリンク

https://atcoder.jp/contests/abc121/tasks/abc121_c

 

問題

栄養ドリンクが売られている店は 軒あり、 軒目の店では 円の栄養ドリンクを 本まで買うことができます。

最小で何円あれば 本の栄養ドリンクを買い集めることができるでしょうか。

考え方

安い方から買う。

安い順番にソートして、

その店の在庫がほしい数に満たなかったら全部買って次の店へ。

十分な数の在庫がある店では、ほしい数だけ買って終わり。

int型では足りないことに注意しながら、かかったお金を計算する。

 

書いたコード

解説を読んだ

おなじようなことが書いてありました。

 

結果

TLEしました(Time Limit Exceeded、制限時間オーバー)。

 

考えは間違っていないはずで、長めのコードでのみTLEしているので、もしかしたら無限ループに陥ってるかもしれないのが恐ろしいところです。補導しないで。

 

未だに、何が時間くってるのかわかりません。解説にはソートがネックになりますと書いてあったんですが。

 

 

今まで、Unityで使えるから、mallocしなくていいから、配列を関数の返り値に使える(使いやすい)から、文字列の同値判定にequalsとかじゃなくて==が使えるから、C# を使ってきました。

 

でも、勝ちたい。早いC++を覚えて、使って、勝ちたい。

 

 

いろいろ考えた結果、僕は勝利のため、苦手な剣の使い方を覚えることにします。

スポンサードリンク