結果

問題 No.2510 Six Cube Sum Counting
ユーザー 👑 KA37RI
提出日時 2023-09-24 16:59:16
言語 Rust
(1.83.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
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample MLE * 4
other MLE * 26
権限があれば一括ダウンロードができます

ソースコード

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