제출 #1275854

#제출 시각아이디문제언어결과실행 시간메모리
1275854sadraallamiJakarta Skyscrapers (APIO15_skyscraper)C++20
0 / 100
2 ms572 KiB
//وَمَكَروا وَمَكَرَ اللَّهُ ۖ وَاللَّهُ خَيرُ الماكِرينَ
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<vector<ll>> mat;
#define ff first
#define ss second
#define pb push_back
#define all(x) x.begin(),x.end()
#define fast (ios_base::sync_with_stdio(false), cin.tie(NULL));
#define print(n) for(ll i:n){std::cout << i << ' ';}std::cout << endl;
ll pw(ll a,ll b,ll md=1e9+3){ll res=1;b=max(b,0ll);while(b){if(b&1){res=(a*res)%md;}a=(a*a)%md;b>>=1;}return(res%md);}
const ll maxn=2e5+10;
const ll mod=1e9+7;
const ll sq=500;
const ll lg=30;
const ll inf=1e18;
int vis[maxn];
vector<ll> adj[maxn];
ll n,upd=0,cnt=0,dis[maxn],ans=inf;
void bfs(ll s){
    queue<ll> q;
    q.push(s);
    dis[s]=1;
    upd=1;
    vis[1]=1;
    while(q.size()){
        ll v=q.front();
        q.pop();
        //cout<< "* " << v << endl;
        cnt++;
        for(ll u:adj[v]){
            if(vis[u]==0){
                dis[u]=dis[v]+1;
                upd+=dis[u];
                vis[u]=1;
                q.push(u);
            }
        }
    }
    if(cnt<n)upd=inf;
}
int main(){
    fast;
    cin>>n;
    for(ll i=1;i<=n;i++){
        ll k;cin>>k;
        for(ll j=0;j<k;j++){
            ll x;cin>>x;
            adj[x].pb(i);
        }
    }
    for(ll i=1;i<=n;i++){
        bfs(i);
        //cout<< i << " --> " << upd << endl;
        fill(vis,vis+n+1,0);
        ans=min(ans,upd);
    }
    cout<< ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...