제출 #533186

#제출 시각아이디문제언어결과실행 시간메모리
533186makanhuliaBosses (BOI16_bosses)C++17
100 / 100
620 ms600 KiB
#include <bits/stdc++.h>
#define pb push_back
#define fi first
#define se second
typedef long long ll;
using namespace std;

ll n, ans = 1e9;
vector<ll>adj[5005];
ll p[5005];

void bfs(ll s){
  memset(p, 0, sizeof(p));
  p[s] = 1;
  queue<ll>q;
  q.push(s);
  while(!q.empty()){
    ll cur = q.front();
    q.pop();
    for(int x : adj[cur]){
      if(!p[x]){
        p[x] = p[cur]+1;
        q.push(x);
      }
    }
  }
  ll total = 0;
  for(int i = 1; i <= n; i++){
    if(!p[i]) return;
    total += p[i];
  }
  ans = min(ans, total);
  return;
}

int main(){
  cin >> n;
  for(int i = 1; i <= n; i++){
    int m;
    cin >> m;
    for(int j = 1; j <= m; j++){
      ll x; cin >> x;
      adj[x].pb(i);
    }
  }
  for(int i = 1; i <= n; i++){
    bfs(i);
  }
  cout << ans << endl;
  
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...