#include using namespace std; int k,s,c,m[21],mat[19][19],pos[21],flag[19][19]; int ans,cnt=0; int ar[11]; //backtracking function void back(int i){ if(i==s){ //get current sum int sum=0; for(int p=0; pc)return; //calculate profit for current arrangement memset(flag,0,sizeof(flag)); int curcost=0; for(int p=0; pmax(-1,pos[p]/k-ar[p]); j--) for(int kk=min(k-1,pos[p]%k+ar[p]); kk>max(-1,pos[p]%k-ar[p]); kk--){ flag[j][kk]=1; cnt++; } } for(int p=0; p> p; for(int ii=1; ii<=p; ii++){ cnt=0; ans=-1; cin >> k >> s >> c; for(int i=0; i> m[i]; for(int i=0; i> pos[i],pos[i]--; for(int i=0; i> mat[i][j]; back(0); cout << "Case " << ii << ": " << ans << endl; } return 0; }