参考:https://blog.csdn.net/weixin_41879093/article/details/104856812
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m, c;
cin >> n >> m >> c;
//存储每种颜色对应的珠子索引
vector<vector<int>> num;
for (int i = 0; i < c; i++) {//初始化
vector<int> tmp;
num.push_back(tmp);
}
//分颜色记录每个颜色出现的珠子位置
for (int i = 0; i < n; i++) {
int num_i;
cin >> num_i;
int tmp;
for (int j = 0; j < num_i; j++) {
cin >> tmp;
if (tmp)
num[tmp - 1].push_back(i);
}
}
int res = 0;
for (int i = 0; i < c; i++) {
int len = num[i].size();
int flag = 0;
for (int j = 0; j < len - 1; j++) {
if (num[i][j + 1] - num[i][j] + 1 <= m) {
res++;
flag = 1;
break;
}
}
//防止重复计算
if (!flag && (num[i][0] + n - 1 - num[i][len - 1] + 2) <= m) {
res++;
}
}
cout << res << endl;
return 0;
}