Problem:
Score : 200 points

Problem Statement

Snuke is interested in strings that satisfy the following conditions:

The length of the string is at least N.

The first N characters equal to the string s.

The last N characters equal to the string t.

Find the length of the shortest string that satisfies the conditions.

Constraints

1≤N≤100

The lengths of s and t are both N.

s and t consist of lowercase English letters.

Input

The input is given from Standard Input in the following format:

N
s
t

Output

Print the length of the shortest string that satisfies the conditions.

Sample Input 1

3
abc
cde

Sample Output 1

5

The shortest string is abcde.

Sample Input 2

1
a
z

Sample Output 2

2

The shortest string is az.

Sample Input 3

4
expr
expr

Sample Output 3

4

The shortest string is expr.

Solution in Rust (1.15.1) (judge verdict: Wrong Answer)

use std::io::*;
use std::collections::VecDeque;
fn read_line() -> u64 {
    let mut s = String::new();
    let buf = stdin().read_line(&mut s).unwrap();
    s.trim().parse().ok().unwrap()
}

fn read_vec() -> VecDeque<char> {
    let stdin = stdin();
    let s = stdin
        .bytes()
        .map(|c| c.unwrap() as char)
        .take_while(|c| !c.is_whitespace());
    let mut vec = VecDeque::new();
    for c in s {
        vec.push_back(c);
    }
    vec
}

fn main() {
    let n = read_line();
    let mut s = read_vec();
    let mut t = read_vec();
    let mut ans = s.len() + t.len();
    println!("{:?}", ans);
    let mut son_zai = true;
    while son_zai {
        son_zai = false;
        if s.pop_back() == t.pop_front() {
            ans -= 1;
            son_zai = true;
            println!("{:?}", s);
            println!("{:?}", t);
        }
    }

    println!("{}", ans);
}