所持金の最大値が101010^{10}円であることから酒の値段は11円から101010^{10}円まで可能性がありそうです。これらを全て試すわけにはいかないので、適切な価格設定を上手く見つけたいです。 酒の値段をX、席料をYとすると、客の所持金は A=kX+YA = kX + Y と表せます。 昇順ソートした i+1客_{i+1}i客_i の所持金を引いてみると di=Ai+1Ai=(ki+1ki)Xd_i = A_{i+1} - A_i = (k_{i+1} - k_i)X となり、酒の値段は d1,...,dN1d_1, ..., d_{N-1} の公約数にするのが良いと分かります。 d1,...,dN1d_1, ..., d_{N-1} の公約数をGGとし、Xの値段としてj番目の公約数を選ぶと席料は min(A)Gj\frac{min(A)}{G_j} 通り選べるので、それらの合計が答えとなります。