W<AmaxW < A_{max}W<Amax のとき、1人でもエレベーターに乗ることができない人がいるため、何往復しても全員を二階に運ぶことができません。 以下では、 Amax≤WA_{max} \leq WAmax≤W を前提とします。
乗客NNN人の全体集合をVVVとし、その部分集合をSSSとします。 集合SSSに含まれる人たち全員が二階に上がるために必要な往復数をf(S)f(S)f(S)とすると、求める答えはf(V)f(V)f(V)です。 SSSがエレベーターの条件を満たすとき f(S)=1f(S)=1f(S)=1 、そうでないとき、 f(S)=minT⊂Sf(T)+f(S/T)f(S)=min_{T⊂S} f(T) + f(S/T)f(S)=minT⊂Sf(T)+f(S/T) になります。
この計算をVVVの部分集合である全てのSSSで行うと、O(3N)O(3^N)O(3N)で答えが求まります。 計算量についての詳細は、「ABC187-F 解説」をご覧ください。