結果
問題 |
No.2510 Six Cube Sum Counting
|
ユーザー |
|
提出日時 | 2025-01-02 23:18:52 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,525 bytes |
コンパイル時間 | 292 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 1,262,796 KB |
最終ジャッジ日時 | 2025-01-02 23:20:51 |
合計ジャッジ時間 | 104,182 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 TLE * 1 MLE * 2 |
other | AC * 3 TLE * 5 MLE * 18 |
ソースコード
## https://yukicoder.me/problems/no/2510 def main(): X = int(input()) ITEM_MAX_VALUE = 300 # 低い法 c_array = [{} for _ in range(ITEM_MAX_VALUE + 1)] for a in range(ITEM_MAX_VALUE + 1): a3 = a ** 3 if a3 > X: break for b in range(a, ITEM_MAX_VALUE + 1): b3 = b ** 3 if a3 + b3 > X: break for c in range(b, ITEM_MAX_VALUE + 1): c3 = c ** 3 if a3 + b3 + c3 > X: break value = a3 + b3 + c3 if value not in c_array[c]: c_array[c][value] = 0 c_array[c][value] += 1 answer = 0 value_map = {} for d in reversed(range(ITEM_MAX_VALUE + 1)): d3 = d ** 3 if d3 > X: continue for e in range(d, ITEM_MAX_VALUE + 1): e3 = e ** 3 if e3 + d3 > X: break for f in range(e, ITEM_MAX_VALUE + 1): f3 = f ** 3 if d3 + e3 + f3 > X: break value = d3 + e3 + f3 if value not in value_map: value_map[value] = 0 value_map[value] += 1 for key, value in c_array[d].items(): x = X - key if x in value_map: ans = value * value_map[x] answer += ans print(answer) if __name__ == "__main__": main()