結果
問題 |
No.800 四平方定理
|
ユーザー |
![]() |
提出日時 | 2020-11-19 09:44:00 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 544 bytes |
コンパイル時間 | 152 ms |
コンパイル使用メモリ | 82,156 KB |
実行使用メモリ | 284,760 KB |
最終ジャッジ日時 | 2024-07-23 09:45:22 |
合計ジャッジ時間 | 5,392 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | AC * 10 TLE * 1 -- * 19 |
ソースコード
import collections N,D=map(int, input().split()) Square = [] P = [] M = [] for i in range(N+1): Square.append(i**2) for i in range(1,N+1): for j in range(1,N+1): P.append(Square[i]+Square[j]) M.append(Square[i]-Square[j]) P=collections.Counter(P) M=collections.Counter(M) P = sorted( P.items() ) M = sorted( M.items() ) j = len(M)-1 ans = 0 mk,mv=M[j] for pk, pv in P: while mk+pk > D and j>=0: j-=1 mk,mv=M[j] if mk+pk==D: ans += mv*pv j-=1 mk,mv=M[j] print(ans)