100 atcoder#ABC221C. [ABC221C] Select Mul

[ABC221C] Select Mul

配点 : 300300

問題文

整数 NN が与えられます。NN の各桁の数字を取り出して並べ(並べる順序は好きに変えてよい)、22 つの正整数に分離することを考えましょう。

例えば、123123 という整数に対しては以下の 66 通りの分離の仕方が考えられます。

  • 121233
  • 212133
  • 131322
  • 313122
  • 232311
  • 323211

なお、ここで分離されたあとの 22 整数に leading zero が含まれていてはなりません。例えば、101101 という整数を 11010122 つに分離することはできません。また上述の「正整数に分離する」という条件より、10110111110022 つに分離することもできません。

適切に NN を分離したとき、分離後の 22 数の積の最大値はいくらになりますか?

制約

  • NN11 以上 10910^9 以下の整数
  • NN には 00 でない桁が 22 つ以上含まれる

入力

入力は以下の形式で標準入力から与えられる。

NN

出力

分離後の 22 数の積の最大値を出力せよ。

123
63

問題文中にある通り、以下の 66 通りの分離の仕方が考えられます。

  • 121233
  • 212133
  • 131322
  • 313122
  • 232311
  • 323211

積はそれぞれ 3636, 6363, 2626, 6262, 2323, 3232 であり、この中の最大値は 6363 です。

1010
100

考えられる分離の仕方は以下の 22 通りです。

  • 10010011
  • 10101010

いずれの場合にも積は 100100 となります。

998244353
939337176