제출 #1014636

#제출 시각아이디문제언어결과실행 시간메모리
1014636t_hollBosses (BOI16_bosses)C++14
100 / 100
549 ms872 KiB

#include <bits/stdc++.h>
#define int long long

#define MULTITEST false

using namespace std;

using idata = vector<int>;
using igrid = vector<idata>;

igrid roads;
idata bfs_states; int i_state = 0;
idata distances;

int bfs (int start) {
    i_state ++;

    int cnt = 1;
    queue<int> q; q.push(start);
    bfs_states[start] = i_state;
    distances [start] = 0;

    while (q.size() != 0) {
        int curr = q.front();
        q.pop();

        for (int next : roads[curr]) {
            if (bfs_states[next] == i_state) continue ;

            bfs_states[next] = i_state;
            distances [next] = distances[curr] + 1;
            q.push(next);
            cnt ++;
        }
    }

    if (cnt != roads.size()) return 1e18;

    int res = 0;
    for (int u : distances) res += u + 1;
    return res;
}

void solve () {
    int N;
    cin >> N;

    roads     .resize(N);
    distances .resize(N);
    bfs_states.resize(N);

    for (int i = 0; i < N; i ++) {
        int k; cin >> k;
        for (int j = 0; j < k; j ++) {
            int n; cin >> n;
            roads[n - 1].push_back(i);
        }
    }

    int res = 1e18;
    for (int i = 0; i < N; i ++) res = min(res, bfs(i));

    cout << res << "\n";
}

signed main () {
    ios_base::sync_with_stdio(false); cin.tie(NULL);

    int T = 1;
    if (MULTITEST) cin >> T;

    for (int t = 0; t < T; t ++) solve();
}

컴파일 시 표준 에러 (stderr) 메시지

bosses.cpp: In function 'long long int bfs(long long int)':
bosses.cpp:38:13: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::vector<long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |     if (cnt != roads.size()) return 1e18;
      |         ~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...