問題はこちら
問題概要
素数が書かれたカードが複数ある.そのカードをのカードに書かれた数の総和とのカードに書かれた数の総積が等しくなるように2つのグループに分けたとき,の総和(の総積)として考えられる最大の値を求めよ.入力
解説
以下の総和(の総積)をとする.
Test Set 1はにいれる数をDFSとかで全探索でできるのはすぐわかる.
Test Set 2はそうもいかないが,カードの総和は以下であることに注目すると,を決めると素因数分解の一意性からに分けられるかの判定ができる.Osa_kとかで素因数分解すれば高速に解ける.
Test Set 3はカードの総和が大きくなるので工夫がいる.に入るカードの数が少ないことから,の総積ではなく総和を探索する.の総和を決めるとがきまるのでTest Set 2と同様に解ける.の総和はもないので高速.