下のコードと同じ出力をするプログラムを書いてください。ただし、下のコードではTLEとなることに注意してください。
入力は、下のコードが正常終了するものである。
import bisect
T = int(input())
for _ in range(T):
A, B, C = map(int, input().split())
R = range(A, B, C)
q = int(input())
if q == 0:
print(sum(R))
elif q == 1:
print(len(R))
elif q == 2:
x = int(input())
assert 0 <= x < len(R)
print(R[x])
elif q == 3:
x = int(input())
assert x in R
print(R.index(x))
elif q == 4:
x = int(input())
print(R.count(x))
elif q == 5:
assert C > 0
x = int(input())
print(bisect.bisect_left(R, x))
elif q == 6:
assert C > 0
x = int(input())
print(bisect.bisect_right(R, x))
else:
exit(1)
range(start,stop,step) の形で引数を与える。このとき、step が だと ValueError となる。
step のときは
v = []
i = start
while i < stop:
v.append(i)
i += step
というコードで得られる v のように扱える。step のときは
v = []
i = start
while i > stop:
v.append(i)
i += step
である。
入力は以下の形式で標準入力から与えられる。
query
query
query
番目のクエリ query では、クエリの種類 と必要に応じて が下の形で与えられる。
答えは 行である。
3 100 150 3 0 10 -120 -1 3 3 8 2 3 4 8
2108 7 0
1 -100000000 100000000 1 1
200000000