1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int maxn = 50+5; 5 int T,n,t,a[maxn],dp[180*maxn]; 6 7 int main(int argc, char const *argv[]) 8 { 9 scanf("%d",&T); 10 for(int cas=1; cas<=T; cas++){ 11 memset(dp,-1,sizeof(dp)); 12 dp[0] = 0; 13 scanf("%d%d",&n,&t); 14 for(int i=1; i<=n; i++) 15 scanf("%d",&a[i]); 16 int MAX = 180*n; 17 for(int i=1; i<=n; i++){ 18 for(int j=MAX; j>=a[i]; j--){ 19 if(dp[j-a[i]] >= 0) 20 dp[j] = max(dp[j],dp[j-a[i]]+1); 21 } 22 } 23 24 int ans = 0,sum = 0; 25 for(int i=0; i<t; i++){ 26 if(dp[i]>=ans){ 27 ans = dp[i]; 28 sum = i; 29 } 30 } 31 32 printf("Case %d: %d %d ",cas,ans+1,sum+678); 33 } 34 35 return 0; 36 }