プログラミングとか色々

プログラミングとかについて色々

【AtCoder】ABC184復習&解説【Rust】

rustでBまで 書きかけ

A問題

解法

問題文通りに $ad - bc$ を計算

ソースコード

use proconio::{fastout, input};

#[fastout]
fn main() {
    input! {
        a: isize,
        b: isize,
        c: isize,
        d: isize,
    };

    println!("{}", a * d - b * c);
}

B問題

解法

最初の点数 $x$ を文字列に応じて増減させていく。

注意点

持っている点数が0点のときに不正解となった場合は点数は減らない

ソースコード

use proconio::{fastout, input};

#[fastout]
fn main() {
    input! {
        n: usize,
        x: usize,
        s: String,
    };

    let ans = s.chars().fold(x, |sum, i| {
        if i == 'x' {
            if sum == 0 {
                sum
            } else {
                sum - 1
            }
        } else {
            sum + 1
        }
    });

    println!("{}", ans);
}