제출 #533213

#제출 시각아이디문제언어결과실행 시간메모리
533213devariaotaBosses (BOI16_bosses)C++17
67 / 100
1518 ms220952 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n;
vector<ll> adj[5005];
ll dist[5005][5005];
bool vis[5005][5005];

ll bfs(ll x) {
  queue <ll> q;
  q.push(x);
  ll sum = 1;
  dist[x][x] = 1;
  ll mx = 0;
  vis[x][x] = true;
  while(!q.empty()) {
    ll cur = q.front();
    q.pop();
    for(ll i = 0; i < adj[cur].size(); i++) {
      ll next = adj[cur][i];
      if (!vis[next][x]) {
        vis[next][x] = true;
        dist[next][x] = dist[cur][x] + 1;
        sum += dist[next][x];
        mx = max(mx, dist[next][x]);
        q.push(next);
      }
    }
  }
  return sum;
  
}

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  for(ll i = 1; i <= n; i++) {
    ll k;
    cin >> k;
    for(ll j = 0; j < k; j++) {
      ll next;
      cin >> next;
      adj[next].push_back(i);
      //cout << next << " " << i << endl;
    }
  }
  
  ll mn = LLONG_MAX;
  for(ll i = 1; i <= n; i++) {
    int ans = bfs(i);
    bool flag = true;
    for(ll j = 1; j <= n; j++) {
      if (!vis[j][i]) {
        flag = false;
        break;
      }
    }
    if (flag && ans < mn) {
      mn = ans;
    }
  }
  cout << mn << "\n";
  
}

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

bosses.cpp: In function 'long long int bfs(long long int)':
bosses.cpp:19:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |     for(ll i = 0; i < adj[cur].size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...