Codeforces Round #550 (Div. 3)E. Median String

問題概要

二種類の文字列 s, t について, 辞書順でちょうど s, t の真ん中な文字列を求めよ.

問題へのリンク

制約

  •  1 \le |s| = |t| \le 2\times 10^5
  • st の間にある文字列は奇数個

解法

文字列を 26 進数の数とみれば, (s+t)/2 を出力するだけです. ただし, 2\times 10^5 桁の数を扱うのは無理があるので, 上手に計算する必要があります.

とはいっても, 普通に筆算のように計算するだけです. (s+t) を表す数列をつくり, 上の桁から 2 で割っていきます. 1 余ったとき, 下の桁に繰り下がるのは 10 ではなく 26 のことだけ気を付けましょう.  

実装

Submission #146499260 - Codeforces