From 841394f84c93b09f5499c5920e899088d9cbaa72 Mon Sep 17 00:00:00 2001 From: Philippe Zwietering Date: Sun, 29 May 2022 23:41:44 +0200 Subject: [PATCH] ABC 045, not finished yet, got idea for c --- atcoder/beginner_contests/abc045/Cargo.lock | 25 ++++++++ atcoder/beginner_contests/abc045/Cargo.toml | 12 ++++ atcoder/beginner_contests/abc045/src/bin/a.rs | 13 ++++ atcoder/beginner_contests/abc045/src/bin/b.rs | 64 +++++++++++++++++++ atcoder/beginner_contests/abc045/src/bin/c.rs | 14 ++++ atcoder/beginner_contests/abc045/src/bin/d.rs | 5 ++ 6 files changed, 133 insertions(+) create mode 100644 atcoder/beginner_contests/abc045/Cargo.lock create mode 100644 atcoder/beginner_contests/abc045/Cargo.toml create mode 100644 atcoder/beginner_contests/abc045/src/bin/a.rs create mode 100644 atcoder/beginner_contests/abc045/src/bin/b.rs create mode 100644 atcoder/beginner_contests/abc045/src/bin/c.rs create mode 100644 atcoder/beginner_contests/abc045/src/bin/d.rs diff --git a/atcoder/beginner_contests/abc045/Cargo.lock b/atcoder/beginner_contests/abc045/Cargo.lock new file mode 100644 index 0000000..744ac69 --- /dev/null +++ b/atcoder/beginner_contests/abc045/Cargo.lock @@ -0,0 +1,25 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "abc045" +version = "0.1.0" +dependencies = [ + "proconio", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "proconio" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c333be3af2936f8e810300bc74fe4d0cc168ebc04ab02a28c5b1060fa1bd59" +dependencies = [ + "lazy_static", +] diff --git a/atcoder/beginner_contests/abc045/Cargo.toml b/atcoder/beginner_contests/abc045/Cargo.toml new file mode 100644 index 0000000..44cae49 --- /dev/null +++ b/atcoder/beginner_contests/abc045/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "abc045" +version = "0.1.0" +edition = "2021" + +# dependencies added to new project +[dependencies] +proconio = "0.4.3" + +[profile.release] +lto = true +panic = 'abort' diff --git a/atcoder/beginner_contests/abc045/src/bin/a.rs b/atcoder/beginner_contests/abc045/src/bin/a.rs new file mode 100644 index 0000000..9ee2b5f --- /dev/null +++ b/atcoder/beginner_contests/abc045/src/bin/a.rs @@ -0,0 +1,13 @@ +use proconio::input; + +fn main() { + input!{ + a: u16, + b: u16, + h: u16, + }; + + let result = h * (a + b) / 2; + + println!("{}", {result}); +} diff --git a/atcoder/beginner_contests/abc045/src/bin/b.rs b/atcoder/beginner_contests/abc045/src/bin/b.rs new file mode 100644 index 0000000..5195756 --- /dev/null +++ b/atcoder/beginner_contests/abc045/src/bin/b.rs @@ -0,0 +1,64 @@ +use proconio::input; +use std::collections::VecDeque; + +enum Winner { + Alice, + Bob, + Charlie, +} + +fn parse_char(c: char) -> Winner { + let result : Winner; + + match c { + 'a' => result = Winner::Alice, + 'b' => result = Winner::Bob, + _ => result = Winner::Charlie, + } + + result +} + +fn main() { + input!{ + sa: String, + sb: String, + sc: String, + }; + + let mut alice : VecDeque = sa.chars().collect(); + let mut bob : VecDeque = sb.chars().collect(); + let mut charlie : VecDeque = sc.chars().collect(); + + let mut winner = Winner::Alice; + + loop { + if let Winner::Alice = winner { + let p = alice.pop_front(); + match p { + None => break, + Some(c) => winner = parse_char(c), + } + } + if let Winner::Bob = winner { + let p = bob.pop_front(); + match p { + None => break, + Some(c) => winner = parse_char(c), + } + } + if let Winner::Charlie = winner { + let p = charlie.pop_front(); + match p { + None => break, + Some(c) => winner = parse_char(c), + } + } + } + + match winner { + Winner::Alice => println!("A"), + Winner::Bob => println!("B"), + Winner::Charlie => println!("C"), + } +} diff --git a/atcoder/beginner_contests/abc045/src/bin/c.rs b/atcoder/beginner_contests/abc045/src/bin/c.rs new file mode 100644 index 0000000..101449c --- /dev/null +++ b/atcoder/beginner_contests/abc045/src/bin/c.rs @@ -0,0 +1,14 @@ +use proconio::input; + + +fn main() { + input!{ + s: String, + }; + + let ns : Vec = s.chars().map(|c| u64::from(c.to_digit(10).unwrap())).collect(); + let nns = vec![ns]; + let mut result : u64 = 0; + + println!("{}", {result}); +} diff --git a/atcoder/beginner_contests/abc045/src/bin/d.rs b/atcoder/beginner_contests/abc045/src/bin/d.rs new file mode 100644 index 0000000..f329649 --- /dev/null +++ b/atcoder/beginner_contests/abc045/src/bin/d.rs @@ -0,0 +1,5 @@ +use proconio::input; + +fn main() { + todo!(); +}