From 97ee8adbf3f16cdbe0490f9495df89f08447d143 Mon Sep 17 00:00:00 2001 From: Philippe Zwietering Date: Sat, 28 May 2022 14:58:05 +0200 Subject: [PATCH] AC043 in rust, finished all. (D doesn't get tested correctly locally) --- atcoder/beginner_contests/abc043/Cargo.lock | 25 +++++++++++ atcoder/beginner_contests/abc043/Cargo.toml | 12 +++++ atcoder/beginner_contests/abc043/src/bin/a.rs | 11 +++++ atcoder/beginner_contests/abc043/src/bin/b.rs | 21 +++++++++ atcoder/beginner_contests/abc043/src/bin/c.rs | 28 ++++++++++++ atcoder/beginner_contests/abc043/src/bin/d.rs | 44 +++++++++++++++++++ 6 files changed, 141 insertions(+) create mode 100644 atcoder/beginner_contests/abc043/Cargo.lock create mode 100644 atcoder/beginner_contests/abc043/Cargo.toml create mode 100644 atcoder/beginner_contests/abc043/src/bin/a.rs create mode 100644 atcoder/beginner_contests/abc043/src/bin/b.rs create mode 100644 atcoder/beginner_contests/abc043/src/bin/c.rs create mode 100644 atcoder/beginner_contests/abc043/src/bin/d.rs diff --git a/atcoder/beginner_contests/abc043/Cargo.lock b/atcoder/beginner_contests/abc043/Cargo.lock new file mode 100644 index 0000000..9bfa4f3 --- /dev/null +++ b/atcoder/beginner_contests/abc043/Cargo.lock @@ -0,0 +1,25 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "abc043" +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/abc043/Cargo.toml b/atcoder/beginner_contests/abc043/Cargo.toml new file mode 100644 index 0000000..850bbbf --- /dev/null +++ b/atcoder/beginner_contests/abc043/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "abc043" +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/abc043/src/bin/a.rs b/atcoder/beginner_contests/abc043/src/bin/a.rs new file mode 100644 index 0000000..e169df4 --- /dev/null +++ b/atcoder/beginner_contests/abc043/src/bin/a.rs @@ -0,0 +1,11 @@ +use proconio::input; + +fn main() { + input!{ + n: u32, + }; + + let result = n * (n + 1) / 2; + + println!("{}", {result}); +} diff --git a/atcoder/beginner_contests/abc043/src/bin/b.rs b/atcoder/beginner_contests/abc043/src/bin/b.rs new file mode 100644 index 0000000..4110e51 --- /dev/null +++ b/atcoder/beginner_contests/abc043/src/bin/b.rs @@ -0,0 +1,21 @@ +use proconio::input; + +fn main() { + input!{ + s: String, + }; + + let mut result = String::new(); + + for c in s.chars() { + if c == '0' { + result.push('0'); + } else if c == '1' { + result.push('1'); + } else { + result.pop(); + } + } + + println!("{}", {result}); +} diff --git a/atcoder/beginner_contests/abc043/src/bin/c.rs b/atcoder/beginner_contests/abc043/src/bin/c.rs new file mode 100644 index 0000000..c6efd2f --- /dev/null +++ b/atcoder/beginner_contests/abc043/src/bin/c.rs @@ -0,0 +1,28 @@ +use proconio::input; + +fn cost(target: i32, numbers: &[i32]) -> i32 { + let mut result = 0; + + for n in numbers { + result += (target - n) * (target - n) + } + + result +} + +fn main() { + input!{ + n: i32, + a: [i32; n], + }; + + let mut min = std::i32::MAX; + for t in -100..=100 { + let r = cost(t, &a); + if r < min { + min = r; + } + } + + println!("{}", {min}); +} diff --git a/atcoder/beginner_contests/abc043/src/bin/d.rs b/atcoder/beginner_contests/abc043/src/bin/d.rs new file mode 100644 index 0000000..0dd3e0c --- /dev/null +++ b/atcoder/beginner_contests/abc043/src/bin/d.rs @@ -0,0 +1,44 @@ +use proconio::input; + +fn main() { + input!{ + s: String, + }; + + let mut cs = s.chars(); + let l = s.len(); + + if l == 2 { + let a = cs.next().unwrap(); + let b = cs.next().unwrap(); + + if a == b { + println!("1 2"); + } else{ + println!("-1 -1"); + } + + return + } + + let mut past_chars = [' '; 3]; + past_chars[1] = cs.next().unwrap(); + past_chars[2] = cs.next().unwrap(); + + for i in 2..l { + past_chars[0] = past_chars[1]; + past_chars[1] = past_chars[2]; + past_chars[2] = cs.next().unwrap(); + + let mut sorting = [' '; 3]; + sorting.copy_from_slice(&past_chars); + sorting.sort(); + + if sorting[0] == sorting[1] || sorting[1] == sorting[2] { + println!("{} {}", {i-1}, {i+1}); + return; + } + } + + println!("-1 -1"); +}