# for文は改行しなくてもいいのか?
何故これが動く?
# 確率の問題
nCr / nCr でも確率出せるけど、nPr /nPrでも同様に出してよかったはず?
本当によかったのか整理する
# input()の処理はそれだけをまとめて行った方が速い?
これだとTLE
# まだTLEな箇所がある
# 先に、Pごとに、満たす整数x,yのくみが何個あるか数えておく
num_couples_to_make_p = [0 for _ in range(10001)]
for x in range(-100,101):
for y in range(-100,101):
p = x**2 + y**2
if p <= 10000:
num_couples_to_make_p[p] += 1
Q = int(input())
for _ in range(Q):
P = int(input())
print(num_couples_to_make_p[P])
これが正解
# 入力を受け取る
Q = int(input())
P = [0 for _ in range(Q)]
for i in range(Q):
P[i] = int(input())
pmax = 10**4 # P の最大値
counter = [0 for _ in range(2*pmax+1)] # counter[v] : x^2 + y^2 = v を満たす整数組 (x, y) の個数
# 必要な範囲だけ全探索
for x in range(-100, 101, 1):
for y in range(-100, 101, 1):
v = x * x + y * y
counter[v] += 1
# クエリに対する答え
for i in range(Q):
p = P[i]
print(counter[p])
なるほど?