From 201bfded8492a45fc6183f3b3ff6036411622f1e Mon Sep 17 00:00:00 2001 From: bouzuya Date: Sat, 26 Dec 2020 22:29:26 +0900 Subject: [PATCH] code-formula-2014-final --- code-formula-2014-final/Cargo.lock | 77 ++++++++++++++++++++++++++ code-formula-2014-final/Cargo.toml | 14 +++++ code-formula-2014-final/rust-toolchain | 1 + code-formula-2014-final/src/bin/a.rs | 10 ++++ code-formula-2014-final/src/bin/b.rs | 9 +++ code-formula-2014-final/src/bin/c.rs | 63 +++++++++++++++++++++ code-formula-2014-final/src/bin/d.rs | 11 ++++ code-formula-2014-final/src/bin/e.rs | 11 ++++ code-formula-2014-final/src/bin/f.rs | 11 ++++ code-formula-2014-final/src/bin/g.rs | 11 ++++ code-formula-2014-final/src/bin/h.rs | 11 ++++ 11 files changed, 229 insertions(+) create mode 100644 code-formula-2014-final/Cargo.lock create mode 100644 code-formula-2014-final/Cargo.toml create mode 100644 code-formula-2014-final/rust-toolchain create mode 100644 code-formula-2014-final/src/bin/a.rs create mode 100644 code-formula-2014-final/src/bin/b.rs create mode 100644 code-formula-2014-final/src/bin/c.rs create mode 100644 code-formula-2014-final/src/bin/d.rs create mode 100644 code-formula-2014-final/src/bin/e.rs create mode 100644 code-formula-2014-final/src/bin/f.rs create mode 100644 code-formula-2014-final/src/bin/g.rs create mode 100644 code-formula-2014-final/src/bin/h.rs diff --git a/code-formula-2014-final/Cargo.lock b/code-formula-2014-final/Cargo.lock new file mode 100644 index 00000000..5141e1aa --- /dev/null +++ b/code-formula-2014-final/Cargo.lock @@ -0,0 +1,77 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "code-formula-2014-final" +version = "0.1.0" +dependencies = [ + "proconio", + "superslice", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "proconio" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bed4f95f88d84bb8efd51dbc080d463e6ca953f05dfade2e24daf19dd861ccd" +dependencies = [ + "lazy_static", + "proconio-derive", +] + +[[package]] +name = "proconio-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f2111a9562adf5ba291143c434818c908a05636c8a492a0a69ba4720a2c16" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "superslice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" diff --git a/code-formula-2014-final/Cargo.toml b/code-formula-2014-final/Cargo.toml new file mode 100644 index 00000000..bdcb5217 --- /dev/null +++ b/code-formula-2014-final/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "code-formula-2014-final" +version = "0.1.0" +authors = ["bouzuya "] +edition = "2018" + +# dependencies added to new project +[dependencies] +proconio = { version = "=0.3.6", features = ["derive"] } +superslice = "=1.0.0" + +[profile.release] +lto = true +panic = 'abort' diff --git a/code-formula-2014-final/rust-toolchain b/code-formula-2014-final/rust-toolchain new file mode 100644 index 00000000..1933dfa1 --- /dev/null +++ b/code-formula-2014-final/rust-toolchain @@ -0,0 +1 @@ +1.42.0 \ No newline at end of file diff --git a/code-formula-2014-final/src/bin/a.rs b/code-formula-2014-final/src/bin/a.rs new file mode 100644 index 00000000..92247c92 --- /dev/null +++ b/code-formula-2014-final/src/bin/a.rs @@ -0,0 +1,10 @@ +use proconio::input; + +fn main() { + input! { + a: i64, + b: i64, + }; + let ans = a * b; + println!("{}", ans); +} diff --git a/code-formula-2014-final/src/bin/b.rs b/code-formula-2014-final/src/bin/b.rs new file mode 100644 index 00000000..cafa3814 --- /dev/null +++ b/code-formula-2014-final/src/bin/b.rs @@ -0,0 +1,9 @@ +use proconio::input; + +fn main() { + input! { + n: usize, + }; + let ans = n / 2 + if n % 2 == 0 { 0 } else { 3 }; + println!("{}", ans); +} diff --git a/code-formula-2014-final/src/bin/c.rs b/code-formula-2014-final/src/bin/c.rs new file mode 100644 index 00000000..6a9c2f60 --- /dev/null +++ b/code-formula-2014-final/src/bin/c.rs @@ -0,0 +1,63 @@ +use std::collections::BTreeSet; + +fn read( + stdin_lock: &mut std::io::StdinLock, + buf: &mut Vec, + delimiter: u8, +) -> T { + buf.clear(); + let _ = std::io::BufRead::read_until(stdin_lock, delimiter, buf).unwrap(); + let s = unsafe { std::str::from_utf8_unchecked(&buf) }; + s.parse().unwrap_or_else(|_| panic!("read")) +} + +fn main() { + let stdin = std::io::stdin(); + let mut stdin_lock = stdin.lock(); + let mut buf: Vec = Vec::new(); + + let s: String = read(&mut stdin_lock, &mut buf, b'\n'); + let s = s.trim_end().chars().collect::>(); + + let mut set = BTreeSet::new(); + let mut in_name = false; + let mut name = vec![]; + for c in s.iter() { + match c { + '@' => { + if in_name { + if !name.is_empty() { + set.insert(name.into_iter().collect::()); + name = vec![]; + } + } + in_name = true; + } + ' ' => { + if in_name { + in_name = false; + if !name.is_empty() { + set.insert(name.into_iter().collect::()); + name = vec![]; + } + } + } + 'a'..='z' => { + if in_name { + name.push(c); + } + } + _ => { + unreachable!(); + } + } + } + if in_name { + if !name.is_empty() { + set.insert(name.into_iter().collect::()); + } + } + for s in set { + println!("{}", s); + } +} diff --git a/code-formula-2014-final/src/bin/d.rs b/code-formula-2014-final/src/bin/d.rs new file mode 100644 index 00000000..101ebb15 --- /dev/null +++ b/code-formula-2014-final/src/bin/d.rs @@ -0,0 +1,11 @@ +use proconio::input; +use proconio::marker::Usize1; + +fn main() { + input! { + n: usize, + a: [Usize1; n], + }; + let ans = n - a.len(); + println!("{}", ans); +} diff --git a/code-formula-2014-final/src/bin/e.rs b/code-formula-2014-final/src/bin/e.rs new file mode 100644 index 00000000..101ebb15 --- /dev/null +++ b/code-formula-2014-final/src/bin/e.rs @@ -0,0 +1,11 @@ +use proconio::input; +use proconio::marker::Usize1; + +fn main() { + input! { + n: usize, + a: [Usize1; n], + }; + let ans = n - a.len(); + println!("{}", ans); +} diff --git a/code-formula-2014-final/src/bin/f.rs b/code-formula-2014-final/src/bin/f.rs new file mode 100644 index 00000000..101ebb15 --- /dev/null +++ b/code-formula-2014-final/src/bin/f.rs @@ -0,0 +1,11 @@ +use proconio::input; +use proconio::marker::Usize1; + +fn main() { + input! { + n: usize, + a: [Usize1; n], + }; + let ans = n - a.len(); + println!("{}", ans); +} diff --git a/code-formula-2014-final/src/bin/g.rs b/code-formula-2014-final/src/bin/g.rs new file mode 100644 index 00000000..101ebb15 --- /dev/null +++ b/code-formula-2014-final/src/bin/g.rs @@ -0,0 +1,11 @@ +use proconio::input; +use proconio::marker::Usize1; + +fn main() { + input! { + n: usize, + a: [Usize1; n], + }; + let ans = n - a.len(); + println!("{}", ans); +} diff --git a/code-formula-2014-final/src/bin/h.rs b/code-formula-2014-final/src/bin/h.rs new file mode 100644 index 00000000..101ebb15 --- /dev/null +++ b/code-formula-2014-final/src/bin/h.rs @@ -0,0 +1,11 @@ +use proconio::input; +use proconio::marker::Usize1; + +fn main() { + input! { + n: usize, + a: [Usize1; n], + }; + let ans = n - a.len(); + println!("{}", ans); +}