AtCoder ABC 209のCについてのご質問です。
https://atcoder.jp/contests/abc209/tasks/abc209_c
Python
1n = int(input()) 2c = list(map(int, input().split())) 3c = c.sorted() 4ans = 1 5for i in range(n): 6 ans *= max(c[i]-i, 0) % 1000000007 7print(ans)
というコードを書きましたがTLE(問題で指定された実行時間以内にプログラムが終了しない)になりました。
Python
1n = int(input()) 2c = list(map(int, input().split())) 3c = c.sorted() 4ans = 1 5for i in range(n): 6 ans = ans * max(c[i]-i, 0) % 1000000007 7print(ans)
のように最後から2行目を書き換えると高速に動作し、AC(正答)になりました。
累算代入文とふつうの代入分とのちがいと認識していますが、なぜ処理時間が異なるのでしょうか?
ドキュメントのここの部分は関係ありますか?
(読んでみましたがいまひとつよくわかりませんでした…)
Python 3.8.2です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/18 02:29