#include #include #include #include #include #include using namespace std; const int maxn = 2005; struct node{ int aa,cor; node(){} node(int _aa,int _cor){ aa = _aa; cor = _cor; } }x1[maxn],x2[maxn]; int n,m; int dp1[maxn],dp2[maxn]; int sumx1,sumx2; bool cmp(const node &p,const node &q){ return p.aa < q.aa; } int min(int a,int b) { return a=x1[i].cor; j--){ dp1[j] = min(dp1[j],dp1[j-x1[i].cor]+1); } } for(i=1; i=x2[i].cor; j--){ dp2[j] = min(dp2[j],dp2[j-x2[i].cor]+1); } } int ans = 0,anssum = 0,tmp; for(i=1; i<=n; i++){ for(j=0; j<=i; j++){ tmp = dp1[j] + dp2[i-j]; if(tmp <= m){ if(ans != i){ ans = i; anssum = tmp; }else if(tmp < anssum){ anssum = tmp; } } } } printf("Case %d: %d %d\n",ta++,ans,anssum); } return 0; }