#include #include #include using namespace std; const int maxn=110,maxm=1010; int t,b,n; int dp[maxn][maxm],d[maxn][maxm],c[maxn][maxm]; int comp[2][maxn],num[2],spend[2],cost[maxn],score[maxn]; void recover(int i,int j,int s) { spend[i]=num[i]=0; for(int k=j;k>=0;k--){ if(c[k][s]){ comp[i][num[i]++]=k; s-=cost[k]; spend[i]+=cost[k]; } } reverse(comp[i],comp[i]+num[i]); } int compare(){ int i=0; for(;idp[i][j]){ dp[i][j]=tmp1; d[i][j]=tmp2; c[i][j]=1; }else if(tmp1==dp[i][j]){ if(tmp20){ c[i][j]=0; } } } // printf("%d %d %d\n",i,j,dp[i][j]); } } } printf("Case #%d:\n",kase); recover(0,n,b); printf("%d %d\n",dp[n][b],spend[0]); for(int i=0;i