Submission #208120

# Submission time Handle Problem Language Result Execution time Memory
208120 2020-03-10T04:34:23 Z w4123 Bosses (BOI16_bosses) C++17
100 / 100
803 ms 760 KB
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
#include <cstring>
using namespace std;
bool used[5001];
vector<int> v[5001];
int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        int num;
        cin >> num;
        for (int j = 1; j <= num; j++)
        {
            int tmp;
            cin >> tmp;
            v[tmp].push_back(i);
        }
    }
   /* int greatest = 0;
    vector<int> great_index;
    for (int i = 1; i <= n; i++)
    {
        if (v[i].size() > greatest)
        {
            greatest = v[i].size();
            great_index.clear();
            great_index.push_back(i);
        }
        else if (v[i].size() == greatest)
        {
            great_index.push_back(i);
        }       
    }*/
    long long res = 9999999999999;
    for (int g = 1; g <= n; g++)
    {
        long long ans = 0;
        memset(used, 0, sizeof(bool) * 5001);
        queue<pair<int, int>> q;
        q.push(make_pair(1, g));
        used[g] = true;
        int count = 0;
        while (!q.empty())
        {
            count++;
            ans += q.front().first;
            for (const auto& c : v[q.front().second])
            {
                if (!used[c])
                {
                    q.push(make_pair(q.front().first + 1, c));
                    used[c] = true;
                }
            }
            q.pop();
        }
        if (count != n)continue;
        if (ans < res) res = ans;
    }

    cout << res;
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 424 KB Output is correct
3 Correct 5 ms 504 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 424 KB Output is correct
3 Correct 5 ms 504 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 5 ms 376 KB Output is correct
9 Correct 5 ms 376 KB Output is correct
10 Correct 5 ms 376 KB Output is correct
11 Correct 6 ms 480 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 424 KB Output is correct
3 Correct 5 ms 504 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 5 ms 376 KB Output is correct
9 Correct 5 ms 376 KB Output is correct
10 Correct 5 ms 376 KB Output is correct
11 Correct 6 ms 480 KB Output is correct
12 Correct 10 ms 504 KB Output is correct
13 Correct 9 ms 504 KB Output is correct
14 Correct 173 ms 632 KB Output is correct
15 Correct 11 ms 504 KB Output is correct
16 Correct 645 ms 760 KB Output is correct
17 Correct 803 ms 760 KB Output is correct
18 Correct 778 ms 632 KB Output is correct