結果

問題 No.32 貯金箱の憂鬱
ユーザー YoshihitoYoshihito
提出日時 2020-02-28 17:40:03
言語 Rust
(1.77.0)
結果
AC  
実行時間 1 ms / 5,000 ms
コード長 1,213 bytes
コンパイル時間 602 ms
コンパイル使用メモリ 144,960 KB
実行使用メモリ 4,380 KB
最終ジャッジ日時 2023-09-30 13:48:39
合計ジャッジ時間 1,258 ms
ジャッジサーバーID
(参考情報)
judge14 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,380 KB
testcase_01 AC 1 ms
4,376 KB
testcase_02 AC 1 ms
4,376 KB
testcase_03 AC 1 ms
4,376 KB
testcase_04 AC 1 ms
4,376 KB
testcase_05 AC 1 ms
4,380 KB
testcase_06 AC 1 ms
4,376 KB
testcase_07 AC 1 ms
4,380 KB
testcase_08 AC 1 ms
4,376 KB
testcase_09 AC 1 ms
4,376 KB
testcase_10 AC 1 ms
4,376 KB
testcase_11 AC 1 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

use std::io::{self, Read};

#[derive(Debug)]
struct Input {
    l: i32,
    m: i32,
    n: i32,
}

fn next_token(cin_lock: &mut io::StdinLock) -> String {
    cin_lock.by_ref().bytes().map(|c| c.unwrap() as char)
        .skip_while(|c| c.is_whitespace())
        .take_while(|c| !c.is_whitespace())
        .collect::<String>()
}

fn read_input(cin_lock: &mut io::StdinLock) -> Input {
    Input {
        l: next_token(cin_lock).parse().unwrap(),
        m: next_token(cin_lock).parse().unwrap(),
        n: next_token(cin_lock).parse().unwrap(),
    }
}

fn solve(input: &Input, _cin_lock: &mut io::StdinLock) {
    struct Result {
        p: i32,
        l: i32,
        m: i32,
        n: i32,
    }

    impl Result {
        fn number_of_coins(&self) -> i32 {
            self.l + self.m + self.n
        }
    }

    let mut r = Result { p: 0, l: input.l, m: input.m, n: input.n };

    r.m += r.n / 25;
    r.n = r.n % 25;

    r.l += r.m / 4;
    r.m = r.m % 4;

    r.p += r.l / 10;
    r.l = r.l % 10;

    println!("{}", r.number_of_coins());
}

fn main() {
    let cin = io::stdin();
    let mut cin_lock = cin.lock();

    let input = read_input(&mut cin_lock);
    solve(&input, &mut cin_lock);
}
0