解説
$S,T$ の文字列によって場合分けするという方法で解ける。
//初見で解いたときのコード抜粋
#include <bits/stdc++.h>
using namespace std;
int main(){
string s,t;cin>>s>>t;
if(s=="watermelon"&&t=="beachball")cout<<"shrinebell\n";
else if(t=="watermelon"&&s=="beachball")cout<<"shrinebell\n";
else if(s=="watermelon"&&t=="shrinebell")cout<<"beachball\n";
else if(t=="watermelon"&&s=="shrinebell")cout<<"beachball\n";
else cout<<"watermelon\n";
}
これで終わりです。
しかし、場合によってはいっぱい場合分けを書くのが面倒という人がいると思う(実際いると思ってる)。
この場合、 辞書順で $S>T$ となれば、$S$ と $T$ をswapしてしまうというすれば場合分けを $3$ つに減らすことができる。これなら、実装が少し楽になるのではないだろうか。
C++での解答例
#include <bits/stdc++.h>
using namespace std;
int main(){
string s,t;cin>>s>>t;
if(s>t)swap(s,t);
if(s=="beachball"&&t=="watermelon")cout<<"shrinebell\n";
else if(s=="shrinebell"&&t=="watermelon")cout<<"beachball\n";
else cout<<"watermelon\n";
}