質問編集履歴

1

コード部分を読みやすいように、修正しました。

2020/12/15 11:44

投稿

sysy21
sysy21

スコア4

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ①以下のコードをpython3.8.2で提出するとTLEとなり、pypy7.3.0で提出するとACになります。言語仕様といえばそれまでですが、具体的にどこが高速化されているのかお伺いしたいです。
10
10
 
11
-
11
+ ```python
12
12
 
13
13
  N = int(input())
14
14
 
@@ -34,11 +34,13 @@
34
34
 
35
35
  print(a)
36
36
 
37
+ ```
38
+
37
39
 
38
40
 
39
41
  ②他の方の回答例を見るとjの上限をN-1からi+(N-i-1)//2+1に変えると範囲がさらに絞れてACになるのですが、このように上限を限定できる理由をお伺いしたいです。
40
42
 
41
-
43
+ ```python
42
44
 
43
45
  N = int(input())
44
46
 
@@ -66,13 +68,13 @@
66
68
 
67
69
  print(a)
68
70
 
69
-
71
+ ```
70
72
 
71
73
  ③質問①の条件式を一部変えて、以下コードにするとpythonでもACになります。
72
74
 
73
75
  if文の条件を満たさないために以降が実行されず次のループに行くケースと、breakによって次のループに行くケースの計算量は一般的に後者の方が速いのでしょうか。具体的になぜ速くなっているかをお伺いしたいです。
74
76
 
75
-
77
+ ```python
76
78
 
77
79
  N = int(input())
78
80
 
@@ -100,7 +102,7 @@
100
102
 
101
103
  print(a)
102
104
 
103
-
105
+ ```
104
106
 
105
107
 
106
108