結果

問題 No.45 回転寿司
ユーザー Maricom_tkgMaricom_tkg
提出日時 2018-11-03 17:03:58
言語 Rust
(1.77.0 + proconio)
結果
TLE  
実行時間 -
コード長 787 bytes
コンパイル時間 14,214 ms
コンパイル使用メモリ 402,940 KB
実行使用メモリ 15,680 KB
最終ジャッジ日時 2024-11-20 19:18:48
合計ジャッジ時間 179,221 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 TLE -
testcase_01 TLE -
testcase_02 TLE -
testcase_03 TLE -
testcase_04 TLE -
testcase_05 TLE -
testcase_06 TLE -
testcase_07 TLE -
testcase_08 TLE -
testcase_09 TLE -
testcase_10 TLE -
testcase_11 TLE -
testcase_12 TLE -
testcase_13 TLE -
testcase_14 AC 1,023 ms
7,296 KB
testcase_15 TLE -
testcase_16 TLE -
testcase_17 TLE -
testcase_18 TLE -
testcase_19 TLE -
testcase_20 AC 191 ms
7,040 KB
testcase_21 TLE -
testcase_22 AC 1 ms
7,168 KB
testcase_23 AC 1 ms
8,736 KB
testcase_24 AC 1 ms
7,040 KB
testcase_25 AC 1 ms
8,740 KB
testcase_26 TLE -
testcase_27 TLE -
testcase_28 TLE -
testcase_29 TLE -
testcase_30 TLE -
testcase_31 AC 2 ms
5,248 KB
testcase_32 AC 1 ms
5,248 KB
testcase_33 TLE -
権限があれば一括ダウンロードができます

ソースコード

diff #

use std::io::Read;
use std::cmp;

fn main() {
    let mut buf = String::new();
    std::io::stdin().read_to_string(&mut buf).unwrap();
    
    let mut iter = buf.split_whitespace();
    
    let n: usize = iter.next().unwrap().parse().unwrap();
    let sushi_lane: Vec<usize> = iter
        .map(|v| v.parse::<usize>().unwrap())
        .collect();
    
    println!("{}", calc_max(&sushi_lane, 0, n-1));
}

fn calc_max(sushi_lane: &Vec<usize>, pos: usize, tail: usize) -> usize {
    if pos == tail {
        return sushi_lane[tail]
    } else if pos > tail {
        return 0
    }
    
    let left_max: usize = sushi_lane[pos] + calc_max(sushi_lane, pos+2, tail);
    let right_max: usize = sushi_lane[pos+1] + calc_max(sushi_lane, pos+3, tail);

    cmp::max(left_max, right_max)
}
0