結果
問題 |
No.800 四平方定理
|
ユーザー |
![]() |
提出日時 | 2023-03-03 04:57:24 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 595 bytes |
コンパイル時間 | 254 ms |
コンパイル使用メモリ | 82,288 KB |
実行使用メモリ | 423,880 KB |
最終ジャッジ日時 | 2024-09-17 20:35:30 |
合計ジャッジ時間 | 20,071 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 TLE * 1 -- * 9 |
ソースコード
# 公式解説より # 2重ループは可能、を押し進めるべきだった # x, yで作れる数を全探索 # w, D, zで作れる数を全探索 # その組合せ数が答え N, D = map(int, input().split()) from collections import defaultdict xy = defaultdict(int) for x in range(1, N+1): for y in range(1, N+1): calc = x**2+y**2 xy[calc] += 1 wDz = defaultdict(int) for w in range(1, N+1): for z in range(1, N+1): calc = w**2+D-z**2 if calc > 0: wDz[calc] += 1 ans = 0 for num in wDz: ans += xy[num]*wDz[num] print(ans)