/* [NWERC'06] BOOKCASE by: Jan Kuipers */ using namespace std; #include #include #include const int infty = 99999; int main () { int runs; cin>>runs; while (runs--) { int N; cin>>N; vector > b(N); for (int i=0; i>b[i].first>>b[i].second; sort(b.begin(),b.end(),greater >()); vector h(N),t(N),tsum(N+1); for (int i=0; i > H(tsum[N]+1, vector(tsum[N]+1, infty)); H[0][0]=0; for (int i=0; i=0; T1--) for (int T2=tsum[i+1]; T2>=0; T2--) { if (T1> t[i]) H[T1][T2] t[i]) H[T1][T2] ? T2 >? (tsum[N]-T1-T2)) * (h[0]+H[T1][T2]); cout << res << endl; } return 0; }