自己紹介
AtCoderで日々奮闘している、中学生のwhile-true-ifです。
ちなみに自分は茶コーダー(2024/3/11時点)です。
この記事の対象者
- AtCoderでヘンなことしてみたい人
- 暇な人
ルール
「タイムロンガー」という遊び方を考案しました
今から、タイムロンガーのルール説明をします。
- 特定の問題をACすること
- 制限時間に近ければ近いほどよい
この2つのルールさえ守っていれば、何してもいいです。
テクニック
time.sleep
を使う
ABC084 A問題
を使ってみました。
問題は以下の通りです。
12 月 30 日の M 時から次の年になるまでは何時間か、求めてください。
基本的には、
print(48-int(input()))
というコードを提出するのが、普通です。
しかし、実行結果はACであるものの、時間は9msという速さであるため、タイムロンガーでは、好まれないコードです。
そのため、time.sleep()
というものを使います。
import time
time.sleep(1.991)
print(48-int(input()))
解答例はこんな感じです。
結果はACで2000msぴったりでした。
これはタイムロンガーの上では、ベストコードです。
しかし、これはちょっとチートすぎる気がするので、別のテクニックを使っていきたいと思います。
for文
を使う
これなら少し面白みがあると思います。
さっきの問題で、タイムロンガーにチャレンジします。
n=78000000
for _ in range(n):
pass
print(48-int(input()))
結果はACで1850msでした。ただ、time.sleep()
と違い、for文は少し、時間が不安定です。そのため、このコードでは、1750ms~1850msとばらつきがあります。これなら、面白みがあると思います。
さらに、踏み込んで、nを80000000にしました。すると、1773ms~1905msとばらつきがありました。
まとめ
みんなも暇つぶしとしてタイムロンガーをやってみてはどうでしょうか。(自分以外にこんなことをしている人はいるのか?...)
そのほかにも、タイムロンガーで使えるテクニックがあったら、コメントで教えてください。