diff options
Diffstat (limited to 'kattis-open/sperhling')
-rw-r--r-- | kattis-open/sperhling/Cargo.lock | 7 | ||||
-rw-r--r-- | kattis-open/sperhling/Cargo.toml | 8 | ||||
-rw-r--r-- | kattis-open/sperhling/src/main.rs | 16 |
3 files changed, 31 insertions, 0 deletions
diff --git a/kattis-open/sperhling/Cargo.lock b/kattis-open/sperhling/Cargo.lock new file mode 100644 index 0000000..5a98a2d --- /dev/null +++ b/kattis-open/sperhling/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "sperhling" +version = "0.1.0" diff --git a/kattis-open/sperhling/Cargo.toml b/kattis-open/sperhling/Cargo.toml new file mode 100644 index 0000000..394fda5 --- /dev/null +++ b/kattis-open/sperhling/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "sperhling" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/kattis-open/sperhling/src/main.rs b/kattis-open/sperhling/src/main.rs new file mode 100644 index 0000000..93b1ed1 --- /dev/null +++ b/kattis-open/sperhling/src/main.rs @@ -0,0 +1,16 @@ +use std::io::{stdin, BufRead}; + +fn main() { + let stdin = stdin(); + let mut lines = stdin.lock().lines(); + let s1 = lines.next().unwrap().unwrap(); + let s2 = lines.next().unwrap().unwrap(); + + let lcp = s1 + .bytes() + .zip(s2.bytes()) + .take_while(|&(a, b)| a == b) + .count(); + + println!("{}", s1.len() + s2.len() - 2 * lcp); +} |