dp[i][j]の解釈は正しいと思うぞ(より正確に言うとroom winnerの順位でroomをソートすることを考えている)

更新は
- i人目がj部屋目の room winner になる
もしくは
- i人目がj部屋目の room winner にならない
のいずれかで、それぞれ
- i-1人目までをj-1部屋に入れた時の room winner の順列の通り数

- i-1人目までをj部屋に入れた時の room winner の順列の通り数
を足せばよい と解釈できる