//by emanlaicepsa #include #define ll long long #define int ll #define IOS ios::sync_with_stdio(0),cin.tie(0); #define pb push_back #define pii pair #define fi first #define se second #define all(n) (n).begin(),(n).end() #define mem(n,k) memset(n,k,sizeof(n)) using namespace std; bool in[2505][55]; ll dp[2505][55], cnt[2505]; vector arr[55]; void solve(int n){ mem(in,0); mem(dp,0x3f); mem(cnt,0); vector tot; for(int i=1,x;i<=n;i++){ cin>>x; arr[i].resize(x); for(int j=0;j>arr[i][j]; tot.pb(arr[i][j]); } } sort(all(tot)); tot.resize(unique(all(tot))-tot.begin()); for(int i=1;i<=n;i++){ for(int j=0,x=arr[i].size();j=1;i--){ for(int j=1;j<=n;j++){ if(!in[i][j]) continue; for(int k=1;k<=n;k++){ if(dp[i+1][k] > 1e9) continue; dp[i][j] = min(dp[i][j],dp[i+1][k]+cnt[i]); if(in[i][k] && k!=j) dp[i][j] = min(dp[i][j],dp[i+1][k]+cnt[i]-1); if(cnt[i]==1 && k==j) dp[i][j] = min(dp[i][j],dp[i+1][k]); } //cout<>x){ cout<<"Case "<<++cnt<<": "; solve(x); } }