CF452A Eevee 题解
Content
已知 \(\texttt{Eevee}\) 将进化成八种不同的口袋妖怪:\(\texttt{vaporeon,jolteon,flareon,espeon,umbreon,leafeon,glaceon,sylveon}\)。
现在有一个长度为 \(n\) 的填字游戏,设计者确保答案是唯一的,已知答案是上面八个口袋妖怪中的一个,请确定 \(\texttt{Eevee}\) 将会进化成的口袋妖怪。
数据范围:\(6\leqslant n\leqslant 8\)。
Solution
这题我们需要根据八个字符串不同的特征来判断,具体如下:
- 如果 \(n=8\),那么一定是 \(\texttt{vaporeon}\)。
- 否则,如果 \(n=6\),那么一定是 \(\texttt{espeon}\)。
- 否则,如果第一个字符是 \(\texttt{j}\),或者第二个字符是 \(\texttt{o}\),或者第四个字符是 \(\texttt{t}\),那么一定是 \(\texttt{jolteon}\)。
- 否则,如果第一个字符是 \(\texttt{u}\),或者第二个字符是 \(\texttt{m}\),或者第三个字符是 \(\texttt{b}\),那么一定是 \(\texttt{unbreon}\)。
- 否则,如果第一个字符是 \(\texttt{l}\),或者第二个字符是 \(\texttt{e}\),或者第四个字符是 \(\texttt{f}\),那么一定是 \(\texttt{leafeon}\)。
- 否则,如果第一个字符是 \(\texttt{s}\),或者第二个字符是 \(\texttt{y}\),或者第四个字符是 \(\texttt{v}\),那么一定是 \(\texttt{sylveon}\)。
- 否则,如果第一个字符是 \(\texttt{g}\),或者第四个字符是 \(\texttt{c}\),那么一定是 \(\texttt{glaceon}\)。
- 否则,如果第一个字符是 \(\texttt{f}\),或者第四个字符是 \(\texttt{r}\),那么一定是 \(\texttt{flareon}\)。
这里建议读者仔细对照每个名字自行分析。
Code
本题解只放核心代码部分,其中:
- \(n\) 如题意所述。
- \(a\) 表示输入的字符串。
if(n == 8) return printf("vaporeon"), 0;
else if(n == 6) return printf("espeon"), 0;
else if(a[0] == 'j' || a[1] == 'o' || a[3] == 't') return printf("jolteon"), 0;
else if(a[0] == 'u' || a[1] == 'm' || a[2] == 'b') return printf("umbreon"), 0;
else if(a[0] == 'l' || a[1] == 'e' || a[3] == 'f') return printf("leafeon"), 0;
else if(a[0] == 's' || a[1] == 'y' || a[3] == 'v') return printf("sylveon"), 0;
else if(a[0] == 'g' || a[3] == 'c') return printf("glaceon"), 0;
else if(a[0] == 'f' || a[3] == 'r') return printf("flareon"), 0;