下のコードと同じ出力をするプログラムを書いてください。ただし、下のコードでは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