제출 #155944

#제출 시각아이디문제언어결과실행 시간메모리
155944aloo123Bosses (BOI16_bosses)C++14
0 / 100
3 ms632 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define f first #define s second #define mp make_pair #define pb push_back #define vll vector<ll> #define fastio ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL) using namespace std; const ll N = 5005; const ll MOD = 1e9+7; vll adj[N]; vll adj2[N]; ll dp[N]; ll dis[N]; bool vis[N]; ll bfs(ll cur) { for(int i =0;i<N;i++) { dis[i]= -1; } queue<ll> q; q.push(cur); dis[cur]=1; while(!q.empty()) { ll p = q.front(); q.pop(); for(auto v:adj[p]) { if(dis[v]==-1) { dis[v]=dis[p]+1; q.push(v); } } } ll co =0; for(int i =1;i<N;i++) { if(dis[i]==-1)continue; co+=dis[i]; } return co; } int main() { fastio; ll n; cin >> n; bool poss=true; ll src; for(int i =1;i<=n;i++) { ll k; cin >> k; if(k==0) { src=i; poss=false; } for(int j =1;j<=k;j++) { ll x; cin >> x; adj[x].pb(i); } } if(!poss) { ll sum=bfs(src); cout<<sum<<endl; return 0; } ll ans = LLONG_MAX; for(int i=1;i<=n;i++) { ll sum=bfs(i); //cout << i << " " << dp[i] << endl; ans=min(ans,sum); } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...