質問編集履歴
1
コード部分を読みやすいように、修正しました。
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
|
|