제출 #1367424

#제출 시각아이디문제언어결과실행 시간메모리
1367424pieterbotBosses (BOI16_bosses)C++20
100 / 100
329 ms720 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long ;
using vi = vector <int> ;
using vll = vector <ll> ;
using pii = pair<int,int> ;
using pll = pair<ll,ll> ;

#define st first
#define nd second 
#define all(x) (x).begin(),(x).end() 
#define sz(x) (int)(x).size()
#define ndl '\n' 
#define dbg_vec(x) cout << #x << " : " ; for(auto a : (x) ) cout << a << ' ' ; cout << endl ;

#define DEBUG
#ifdef DEBUG 
#define dbg(x) cout << #x << " = " << x << endl ;
#else
#define dbg(x) 
#endif

const int maxn = 5007 , INFI = 1e9+777 ;

int N , M ; 

vi adj[maxn] ; 

bool vis[maxn] ;
ll oblicz( int start ){ 
    ll sum = 0 , cnt = 0 ;
    queue<pii> q ; q.push({start,1}) ;
    while(!q.empty()){
        auto[v,dyst] = q.front() ; 
        q.pop() ;
        vis[v] = 1 ;
        cnt ++ ;
        sum += dyst ;
        for(auto u : adj[v] ){
            if(vis[u]) continue;
            vis[u] = 1 ;
            q.push({u,dyst+1}) ;
        }
    }
    fill(vis,vis+N+7,0) ;
    return (cnt!=N? INFI : sum );
}
int main(){
    ios_base::sync_with_stdio(false) ; cin.tie(0) ;
    cin >> N ; 
    for(int i=1;i<=N;i++){
        int ile ; cin >> ile ; 
        for(int j=1;j<=ile;j++){
            int par ; cin >> par ;
            adj[par].push_back(i) ;
        }
    }
    ll bans = INFI ;
    for(int i=1;i<=N;i++){
        ll res = oblicz(i) ;
        bans = min ( bans , res ) ;
    }
    cout << bans ;
    
    return 0 ;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…