解説

実際に ab,baa^b , b^a の値を計算して比較するのは、 ab,ba(1018)(1018)=1018×1018a^b , b^a \leq (10^{18})^{(10^{18})} = 10^{18 \times 10^{18}} より、あまりにも無謀です。よって、工夫を考えます。

とりあえず、与えられた不等式を変形してみます。a,ba,b の少なくともどちらか一方が 11 のときや、a=ba = b のときの大小関係は明らか(a=1a=1 かつ aba \neq b のときのみ不等式成立)であるため、ab,2a,ba \neq b , 2 \leq a,b の場合を考えます。

ab<babloga<alogbblogb<aloga\displaystyle a^b < b^a \longleftrightarrow b\log a < a\log b \longleftrightarrow \frac{b}{\log b} < \frac{a}{\log a}

ここで、 f(x)=xlogx\displaystyle f(x) = \frac{x}{\log x} とおくと ab<baf(b)<f(a)a^b < b^a \longleftrightarrow f(b) < f(a) が成り立てば良いと分かります。

また、 f(x)f(x) のグラフを微分して描いてみると、0<x0 < x の部分においてグラフは下に凸の形をしており x=e2.71x=e \fallingdotseq 2.71 のとき極小値をとることが分かります。よって、(e<)3b<a(e <) 3 \leq b < a のときは不等式が成り立ちます。

では、a,ba,b のどちらか一方が 22 のときはどうなるのでしょうか。まず、a=2a=2 のときを考えてみます。

2b<b22bb2<02^b < b^2 \longleftrightarrow 2^b-b^2 < 0

ここで、b>0b>0 において 2bb2=02^b-b^2 = 0 の解は b=2,4b=2,4 であり、2bb2<02^b-b^2 < 0 を満たす正整数 bbb=3b=3 のみであるため、(a,b)=(2,3)(a,b) = (2,3) のときのみ不等式が成り立ちます。

b=2b=2 のときは、a2<2a2aa2>0a^2 < 2^a \longleftrightarrow 2^a-a^2 > 0 より、a=2a=2 のときと同様にして考えると aa2,3,42,3,4 以外の正整数であれば不等式が成り立ちます。

これまでの考察をまとめます。 不等式が成り立つのは、(a,b)(a,b) が以下の条件のうちいづれかを満たすときです。

  • a=1a=1 かつ a<ba < b
  • 3b<a3 \leq b < a
  • (a,b)=(2,3)(a,b) = (2,3)
  • a2,3,4a \neq 2,3,4 かつ b=2b=2

これらの判定は当然 O(1)O(1) でできるので、余裕で実行時間制限に間に合います。

追記

f(x)=xlogx\displaystyle f(x) = \frac{x}{\log x} の利用は ab,baa^b,b^a の比較問題で威力を発揮しますが、今回の問題ではコーナーケースを考える必要がありなかなかしんどいと思います。