Problem:
Score : 100 points

Problem Statement

Given is a string S representing the day of the week today.

S is SUN, MON, TUE, WED, THU, FRI, or SAT, for Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday, respectively.

After how many days is the next Sunday (tomorrow or later)?

Constraints

S is SUN, MON, TUE, WED, THU, FRI, or SAT.

Input

Input is given from Standard Input in the following format:

S

Output

Print the number of days before the next Sunday.

Sample Input 1

SAT

Sample Output 1

1

It is Saturday today, and tomorrow will be Sunday.

Sample Input 2

SUN

Sample Output 2

7

It is Sunday today, and seven days later, it will be Sunday again.

Solution in Rust (1.15.1) (judge verdict: Accepted)


fn main(){
    let input_str: String = read();
    let num = search_next_sunday(&input_str);

    println!("{}", num);

}

fn search_next_sunday(s: &str) -> usize{
    let mut day_of_week = vec!["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
    // 何番目の文字かを取得
    let mut index: usize = 0;
    for i in 0..day_of_week.len(){
        if s == day_of_week[i]{
            index = i;
        }
    }

    let mut count = 0;
    loop {
        if index >= day_of_week.len(){
            index = 0;
        }
        if day_of_week[index] == "SUN" && count != 0{
            return count;
        }
        index += 1;
        count += 1;
    }
}
/// 標準入力を指定の型で返す
fn read<T: std::str::FromStr>() -> T {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().parse().ok().unwrap()
}