This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int n, f;
vector<vector<int>> a;
bool check(vector<bool> fact) {
    for(int i = 0; i < n; i++) {
        int cnt = 0;
        for(int j = 0; j < (int) a[i].size(); j++) {
            if (fact[a[i][j]] == false) {
                cnt++;
            }
        }
        if (cnt != 1) return false;
    }
    return true;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n >> f;
    a.resize(n);
    for(int i = 0; i < n; i++) {
        int k;
        cin >> k;
        a[i].resize(k);
        for(int j = 0; j < k; j++) {
            cin >> a[i][j];
            a[i][j]--;
        }
    }
    int mn = f+1, mx = 0;
    for(int mask = 0; mask < (1 << f); mask++) {
        vector<bool> facts(f, false);
        int cnt = f;
        for(int i = 0; i < f; i++) {
            if (mask & (1 << i)) {
                facts[i] = true;
                cnt--;
            }
        }
//        for(auto i : facts) {
//            cout << i << " ";
//        } cout << "\n";
        int fun = check(facts);
//        cout << fun << "\n";
        if (fun == true) {
            mn = min(mn, cnt);
            mx = max(mx, cnt);
        }
    }
    cout << mn << " " << mx << "\n";
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |