Submission #50231044
Source Code Expand
use std::collections::HashMap;
use proconio::input;
fn dfs(memo: &mut HashMap<usize, usize>, x: usize) -> usize {
if x == 0 || x == 1 {
return 0;
}
if let Some(&v) = memo.get(&x) {
return v;
}
let v = x + dfs(memo, x / 2) + dfs(memo, (x + 1) / 2);
memo.insert(x, v);
v
}
fn main() {
input! {
n: usize,
};
let ans = dfs(&mut HashMap::new(), n);
println!("{}", ans);
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Divide and Divide |
| User | bouzuya |
| Language | Rust (rustc 1.70.0) |
| Score | 300 |
| Code Size | 438 Byte |
| Status | AC |
| Exec Time | 1 ms |
| Memory | 2088 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 300 / 300 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 02_corner_00.txt, 02_corner_01.txt, 03_min_00.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 2084 KiB |
| 00_sample_01.txt | AC | 1 ms | 1996 KiB |
| 00_sample_02.txt | AC | 0 ms | 2064 KiB |
| 01_random_00.txt | AC | 0 ms | 1968 KiB |
| 01_random_01.txt | AC | 1 ms | 2088 KiB |
| 01_random_02.txt | AC | 1 ms | 1872 KiB |
| 01_random_03.txt | AC | 0 ms | 1932 KiB |
| 01_random_04.txt | AC | 1 ms | 1792 KiB |
| 02_corner_00.txt | AC | 0 ms | 2084 KiB |
| 02_corner_01.txt | AC | 0 ms | 1868 KiB |
| 03_min_00.txt | AC | 1 ms | 1916 KiB |