こんばんは。昨日の分のブログは2年の大川が担当します。

 

昨日のメニューは了さん作で、キック、プル、スイムがバランスよくあって全体の距離も多めなメニューでした。

 

 

 

 

 

 

 

 

さて、数日前のブログで安達が競技プログラミングについて紹介してくれていたので、それに続き競プロで使われるプログラミング言語について書きたいと思います。

 

その安達のブログがこちらです↓まずこれを読みましょう

https://ameblo.jp/tousui1920/entry-12618643066.html?timestamp=1597730710

 

 

Atcoder、codeforces等のコンテストサイトでは、以下のように数十あるプログラミング言語の中から好きなものを選んで提出できるようになっています。

 

 

プログラミング言語はどれを選ぶかによって大きく変わってきます。言語ごとにメリット、デメリットがあり、それを知ったうえで目的に合ったものを選ぶことが必要になります。

 

競技プログラミングにおいてはc++という言語が圧倒的におすすめです。

一番大きな理由はプログラムの実行速度が圧倒的に速いからです。

競プロの問題にはプログラムの実行時間制限というものがあり、これはたいてい数秒なのですが、まったく同じようなプログラムを書いても一方の言語だと制限に間に合い、別の言語だと間に合わずといったことが起こります。

ちなみに制限に間に合わないと不正解と同じ扱いを受けます。

これを避けるために、高速でかつある程度書きやすい言語のc++をおすすめします。

 

他にたとえばpythonという人気の言語があります。非常に書きやすくて可読性も高い言語であり、機械学習などに使われる言語として今最もアツいプログラミング言語と言って良いでしょう。ですが、競プロにおいては実行速度の速いc++が勝るでしょう。

 

 

 

以下の問題を見てみましょう。

 

 

 

 

p1からpNを小さい順に並べ替えて、前からK個の和を出力するだけの単純な問題ですが、まずはpythonでコードを書いて提出してみます。

 

実行時間29ms

 

 

そしてc++でもコードを書いて提出します。

 

実行時間3ms

 

 

c++はpythonに比べて多少書きやすさや可読性が劣るものの、圧倒的に実行速度が速いことが分かると思います。

平均して数十から百倍変わると言われています。

 

 

 

 

ではでは、c++を使って競プロをはじめましょう!!

 

昨日の分のブログと書きましたが日付変わりました....

 

 

Art