結果

問題 No.2510 Six Cube Sum Counting
ユーザー 👑 KA37RIKA37RI
提出日時 2023-09-24 16:59:16
言語 Rust
(1.77.0 + proconio)
結果
MLE  
実行時間 -
コード長 992 bytes
コンパイル時間 12,124 ms
コンパイル使用メモリ 401,680 KB
実行使用メモリ 537,152 KB
最終ジャッジ日時 2024-09-19 12:59:17
合計ジャッジ時間 77,818 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 MLE -
testcase_01 MLE -
testcase_02 MLE -
testcase_03 MLE -
testcase_04 MLE -
testcase_05 MLE -
testcase_06 MLE -
testcase_07 MLE -
testcase_08 MLE -
testcase_09 MLE -
testcase_10 MLE -
testcase_11 MLE -
testcase_12 MLE -
testcase_13 MLE -
testcase_14 MLE -
testcase_15 MLE -
testcase_16 MLE -
testcase_17 MLE -
testcase_18 MLE -
testcase_19 MLE -
testcase_20 MLE -
testcase_21 MLE -
testcase_22 MLE -
testcase_23 MLE -
testcase_24 MLE -
testcase_25 MLE -
testcase_26 MLE -
testcase_27 MLE -
testcase_28 MLE -
testcase_29 MLE -
権限があれば一括ダウンロードができます

ソースコード

diff #

use std::io;
use std::collections::HashMap;

fn solve() -> u32 {
  // input! {
  //   x: i64,
  // }
  let x: u32 = input().parse().unwrap();
  let mut cubes: HashMap<u32, Vec<(u32, u32, u32)>> = HashMap::new();
  for a in 0..=300u32 {
    for b in a..=300 {
      for c in b..=300 {
        let abc = (a, b, c);
        let y = a.pow(3) + b.pow(3) + c.pow(3);
        if let Some(v) = cubes.get(&y) {
          let mut u = v.clone();
          u.push(abc);
          cubes.insert(y, u);
        }else {
          cubes.insert(y, vec![abc]);
        }
      }
    }
  }
  let mut ans = 0;
  for (&y, def_vec) in cubes.iter() {
    if let Some(v) = cubes.get(&(x - y)) {
      for &abc in v {
        for def in def_vec {
          if abc.2 <= def.0 { ans += 1; }
        }
      }
    }
  }
  return ans;
}

fn input() -> String {
  let mut buffer = String::new();
  io::stdin().read_line(&mut buffer).unwrap();
  return buffer.trim().to_string();
}

fn main() {
  println!("{}", solve());
}
0