rt,代码:
#include<bits/stdc++.h>
using namespace std;
int ans[2010][2010],t[2010][2010],n,h,d;
int main()
{
memset(ans,0,sizeof(ans));
memset(t,0,sizeof(t));
scanf("%d%d%d",&n,&h,&d);
for(int i=1;i<=n;i++)
{
int ai;scanf("%d",&ai);
for(int j=1;j<=ai;j++)
{
int m;scanf("%d",&m);
t[m][i]++;
}
}
for(int i=h;i>0;i--)
{
for(int j=1;j<=n;j++)
{
int maxl=-1,maxr=-1;
for(int k=1;k<j;k++)
maxl=max(ans[i+d][k],maxl);
for(int k=j+1;k<=n;k++)
maxr=max(ans[i+d][k],maxr);
ans[i][j]+=max(ans[i+1][j],max(maxl,maxr))+t[i][j];
//cout<<ans[i][j]<<" ";
}
//cout<<endl;
}
int maxans=-1;
for(int i=1;i<=n;i++)maxans=max(ans[1][i],maxans);
cout<<maxans;
return 0;
}