From fdde07dee207bb65ea05b3c831e5fb7340c3e901 Mon Sep 17 00:00:00 2001 From: inga-lovinde <52715130+inga-lovinde@users.noreply.github.com> Date: Sat, 27 Mar 2021 14:24:15 +0100 Subject: [PATCH] Solution for Moons and Umbrellas --- .../task2-moons-umbrellas/Cargo.toml | 9 ++++++ .../task2-moons-umbrellas/src/main.rs | 31 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 0327-Qualification/task2-moons-umbrellas/Cargo.toml create mode 100644 0327-Qualification/task2-moons-umbrellas/src/main.rs diff --git a/0327-Qualification/task2-moons-umbrellas/Cargo.toml b/0327-Qualification/task2-moons-umbrellas/Cargo.toml new file mode 100644 index 0000000..7a2cf3c --- /dev/null +++ b/0327-Qualification/task2-moons-umbrellas/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "task2-moons-umbrellas" +version = "0.1.0" +authors = ["inga-lovinde <52715130+inga-lovinde@users.noreply.github.com>"] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/0327-Qualification/task2-moons-umbrellas/src/main.rs b/0327-Qualification/task2-moons-umbrellas/src/main.rs new file mode 100644 index 0000000..6fd4ef3 --- /dev/null +++ b/0327-Qualification/task2-moons-umbrellas/src/main.rs @@ -0,0 +1,31 @@ +use std::{io::{self, BufRead}}; + +const CHAR_C: char = 'C'; +const CHAR_J: char = 'J'; + +fn solve(cj_price: u32, jc_price: u32, template: &str) -> u32 { + let chars: Vec<_> = template.chars().filter(|&ch| ch == CHAR_C || ch == CHAR_J).collect(); + + let mut result = 0; + for i in 1..chars.len() { + result += match (chars[i-1], chars[i]) { + (CHAR_C, CHAR_J) => cj_price, + (CHAR_J, CHAR_C) => jc_price, + _ => 0, + }; + } + + result +} + +fn main() { + let stdin = io::stdin(); + let mut lines = stdin.lock().lines(); + + let test_number: u32 = lines.next().unwrap().unwrap().parse().unwrap(); + for t in 1..=test_number { + let line = lines.next().unwrap().unwrap(); + let parts: Vec<_> = line.split(char::is_whitespace).collect(); + println!("Case #{}: {}", t, solve(parts[0].parse().unwrap(), parts[1].parse().unwrap(), parts[2])); + } +}