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)

use std::io::stdin;

#[allow(unused_macros)]
macro_rules! read {
    ($($t:ty), *) => {
        {
            let mut line: String = String::new();
            stdin().read_line(&mut line).unwrap();
            let mut iter = line.split_whitespace();
            (
                $(iter.next().unwrap().parse::<$t>().unwrap(),)*
            )
        }
    };
    ($t:ty;) => {
        {
            let mut line: String = String::new();
            stdin().read_line(&mut line).unwrap();
            let iter = line.split_whitespace();
            iter
                .map(|t| t.parse::<$t>().unwrap())
                .collect::<Vec<_>>()
        }
    };
}

fn main() {
    let (s,) = read!(String);

    println!("{}", solve(&s));
}

fn solve(x: &str) -> usize {
    let days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
    7 - days.iter().position(|&d| d == x).unwrap()
}

#[cfg(test)]
mod tests {
    #[allow(unused_imports)]
    use super::*;

    #[test]
    fn it_works() {
        assert_eq!(solve("SAT"), 1);
        assert_eq!(solve("SUN"), 7);
    }
}