はまやんはまやんはまやん

hamayanhamayan's blog

Foods Loved by Everyone [AtCoder Beginner Contest 118 B]

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;
}