Submission #915001

# Submission time Handle Problem Language Result Execution time Memory
915001 2024-01-23T06:30:32 Z Aiperiii Bosses (BOI16_bosses) C++14
100 / 100
877 ms 1360 KB
#include <bits/stdc++.h>
#define int long long
#define ff first
#define ss second
#define pb push_back
#define all(x) x.begin(),x.end()
using namespace std;
const int N=5e3+5;
vector <int> g[N];
vector <int> g2[N];
int sum[N];
int t=0;
void dfs(int v,int p){
   for(auto to : g2[v]){
      if(to!=p){
         dfs(to,v);
      }
   }
   sum[v]++;
   sum[p]+=sum[v];
   t+=sum[v];
}
signed main(){
   ios_base::sync_with_stdio();
   cin.tie(0);cout.tie(0);
   int n;
   cin>>n;
   for(int i=1;i<=n;i++){
      int k;
      cin>>k;
      while(k--){
         int x;
         cin>>x;
         g[x].pb(i);
      }
   }
   int mn=1e18;
   queue <int> q;
   for(int i=1;i<=n;i++){
      q.push(i);
      for(int j=1;j<=n;j++){
         g2[j].clear();
         sum[j]=0;
      }
      t=0;
      vector <int> vis(n+1);
      vis[i]=1;
      while(!q.empty()){
         int v=q.front();
         q.pop();
         for(auto to : g[v]){
            if(!vis[to]){
               vis[to]=1;
               g2[v].pb(to);
               q.push(to);
            }
         }
      }
      bool ok=1;
      for(int j=1;j<=n;j++){
         if(!vis[j]){ok=0;break;}
      }
      if(ok){
         dfs(i,0);
         mn=min(mn,t);
      }
   }
   cout<<mn<<"\n";
}
/*
4
1 4
3 1 3 4
2 1 2
1 3
*/
# Verdict Execution time Memory Grader output
1 Correct 0 ms 604 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 604 KB Output is correct
5 Correct 0 ms 604 KB Output is correct
6 Correct 1 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 604 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 604 KB Output is correct
5 Correct 0 ms 604 KB Output is correct
6 Correct 1 ms 604 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 1 ms 676 KB Output is correct
9 Correct 1 ms 668 KB Output is correct
10 Correct 1 ms 604 KB Output is correct
11 Correct 1 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 604 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 604 KB Output is correct
5 Correct 0 ms 604 KB Output is correct
6 Correct 1 ms 604 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 1 ms 676 KB Output is correct
9 Correct 1 ms 668 KB Output is correct
10 Correct 1 ms 604 KB Output is correct
11 Correct 1 ms 604 KB Output is correct
12 Correct 5 ms 856 KB Output is correct
13 Correct 4 ms 860 KB Output is correct
14 Correct 145 ms 1060 KB Output is correct
15 Correct 31 ms 856 KB Output is correct
16 Correct 563 ms 1132 KB Output is correct
17 Correct 840 ms 1360 KB Output is correct
18 Correct 877 ms 1116 KB Output is correct