No.282
問い合わせ回数が制限されているが, 1度の問い合わせで複数の比較を行うことができる.
たとえば, 8個の要素があったときに, これを {1,2,3,4},{5,6,7,8} と分け,
- {1,5}, {2,6}, {3,7}, {4,8}
- {1,6}, {2,7}, {3,8}, {4,5}
- {1,7}, {2,8}, {3,5}, {4,6}
- {1,8}, {2,5}, {3,6}, {4,7}
で問い合わせを行う.
次にさらに {1,2},{3,4},{5,6},{7,8} と分け,
- {1,3},{2,4},{5,7},{6,8}
- {1,4},{2,3},{5,8},{6,7}
で問い合わせを行う.
これを繰り返すことですべての要素対の大小関係を 回の問い合わせで判定できる.
これですべての要素対の大小関係がわかったので, あとはクイックソートなりを使ってソートすればいい.