https://atcoder.jp/contests/abc118/tasks/abc118_b
解説
https://atcoder.jp/contests/abc118/submissions/4280142
データの渡し方が後から扱うのにシンプルではないので、扱いやすいように入れ替える。
A[i][j] := i番目の人がj番目の食べ物が好きなら1, 無回答なら0
このように配置しておくと、ある食べ物について、好きと回答している人をループで探しやすい。
データをうまく整形して解く問題。
int N, M; int A[31][31]; //--------------------------------------------------------------------------------------------------- void _main() { cin >> N >> M; rep(i, 0, N) { int k; cin >> k; rep(j, 0, k) { int a; cin >> a; a--; A[i][a] = 1; } } int ans = 0; rep(i, 0, M) { int cnt = 0; rep(j, 0, N) if (0 < A[j][i]) cnt++; if (cnt == N) ans++; } cout << ans << endl; }