#include #define N 105 using namespace std; struct data{ int score,sum,id,ch; int operator < (const data &b)const{ if (score!=b.score) return score>b.score; if (sum!=b.sum) return sum-1e9){ tmp=F[i][j];tmp.ch=0; upd(F[i+1][j],tmp); tmp.score+=a[i+1];tmp.sum+=n-i;tmp.id=n-i;tmp.ch=1; if (j+b[i+1]<=U) upd(F[i+1][j+b[i+1]],tmp); } ans.score=-1e9; for (j=0;j<=U;j++) if (F[n][j]