TopCoder SRM 530 Div2 Easy GogoXBallsAndBinsEasy
問題
n個のビンがあり、それぞれにS[i]個のボールが入っている。
ボールを別のビンに移す操作を繰り返して、
それぞれのビンに入っているボールの個数T[i]が、
T[i]はS[i]を並べ替えたものであり、T[i]がソート済みの列になるようにする。
T[i]が与えられたとき、
全てのS[i]のうち、T[i]に至る操作の最小回数が最大になるようなS[i]の、
T[i]に至る操作の最小回数を求めよ。
制約条件
n≦10
T[i]≦10
T[i]の要素は全て異なる
方針
S[i]を全生成して数える。
ソースコード
class GogoXBallsAndBinsEasy { public: int solve(vector <int> T) { vi t=T; int ans=0; do{ int tmp=0; rep(i,t.size())tmp+=abs(T[i]-t[i]); ans=max(ans,tmp/2); }while(next_permutation(all(t))); return ans; } };