SRM434 Div2 1000

問題

36進数(0-9A-Z)で考える.36進数で使われる文字のうちk個の文字をZに置き換えられるとき,36進数の文字列の配列の和で可能な最大値を返す.leading zerosは許されない.

考え方

実装.
36進数で使われる文字のうちk個を選んだ組み合わせをそのまま計算すると膨大になる.
なので,前もって文字をZに置き換えたその差分を計算しておく.
例えばHELLOのHをZにするとその差分はI0000,EをZにすると差分はL000...のように36個分すべて計算しておいて,差分を多いものからk個だけ選んで,もともとの配列の和に足し合わせればいい.


結局必要な実装は,36進数の文字列同士の足し算(文字列のままで),文字列同士の比較関数(sort用).