結果
問題 | No.2510 Six Cube Sum Counting |
ユーザー |
|
提出日時 | 2025-01-02 23:12:57 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,374 bytes |
コンパイル時間 | 348 ms |
コンパイル使用メモリ | 82,420 KB |
実行使用メモリ | 1,677,688 KB |
最終ジャッジ日時 | 2025-01-02 23:14:56 |
合計ジャッジ時間 | 118,169 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 TLE * 1 MLE * 2 |
other | AC * 4 TLE * 7 MLE * 15 |
ソースコード
## https://yukicoder.me/problems/no/2510 def main(): X = int(input()) ITEM_MAX_VALUE = 300 # 低い法 c_array = [{} for _ in range(ITEM_MAX_VALUE + 1)] d_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 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()