宿題の解答としては良くないが、C++としてはなんの問題もないな