結果
問題 |
No.2510 Six Cube Sum Counting
|
ユーザー |
|
提出日時 | 2025-01-02 23:07:18 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,730 bytes |
コンパイル時間 | 348 ms |
コンパイル使用メモリ | 82,668 KB |
実行使用メモリ | 1,439,372 KB |
最終ジャッジ日時 | 2025-01-02 23:09:09 |
合計ジャッジ時間 | 109,836 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 TLE * 1 MLE * 2 |
other | AC * 3 TLE * 2 MLE * 21 |
ソースコード
## 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): if a ** 3 > X: break for b in range(a, ITEM_MAX_VALUE + 1): if a ** 3 + b ** 3> X: break for c in range(b, ITEM_MAX_VALUE + 1): if a ** 3 + b ** 3 + c ** 3 > X: break value = a ** 3 + b ** 3 + c ** 3 if value not in c_array[c]: c_array[c][value] = 0 c_array[c][value] += 1 # 高い法 d_array = [{} for _ in range(ITEM_MAX_VALUE + 1)] for a in range(ITEM_MAX_VALUE + 1): if a ** 3 > X: break for b in range(a, ITEM_MAX_VALUE + 1): if a ** 3 + b ** 3> X: break for c in range(b, ITEM_MAX_VALUE + 1): if a ** 3 + b ** 3 + c ** 3 > X: break value = a ** 3 + b ** 3 + c ** 3 if value not in d_array[a]: d_array[a][value] = 0 d_array[a][value] += 1 answer = 0 value_map = {} for m in reversed(range(ITEM_MAX_VALUE + 1)): for key, value in d_array[m].items(): if key not in value_map: value_map[key] = 0 value_map[key] += value for key, value in c_array[m].items(): x = X - key if x in value_map: ans = value * value_map[x] answer += ans print(answer) if __name__ == "__main__": main()