Submission #159455

#TimeUsernameProblemLanguageResultExecution timeMemory
159455a_playerBosses (BOI16_bosses)C++14
100 / 100
995 ms760 KiB
#include <bits/stdc++.h>

using namespace std;

vector<int> grafo[5001];
int val[5001];
bitset<5001> v;
int N;

int bfs(int in){
    v.reset();
    memset(val,0,sizeof(val));
    int s=0;
    queue<int> q;
    q.push(in);
    v[in]=1;
    val[in]=1;
    while(!q.empty()){
      int co=q.front();
      q.pop();
      s+=val[co];
      for(int i=0;i<grafo[co].size();i++){
        if(!v[grafo[co][i]]){
          val[grafo[co][i]]=val[co]+1;
          v[grafo[co][i]]=1;
          q.push(grafo[co][i]);
        }
      }
    }
    for(int i=0;i<N;i++)if(!v[i])return (int)1e9;
    return s;

}

int main(){
  cin>>N;
  for(int i=0;i<N;i++){
    int n;
    cin>>n;
    for(int j=0;j<n;j++){
      int a;
      cin>>a;
      grafo[a-1].push_back(i);
    }
  }
  int mini=bfs(0);
  for(int i=1;i<N;i++){
    mini=min(mini,bfs(i));
  }
  cout<<mini;
}

Compilation message (stderr)

bosses.cpp: In function 'int bfs(int)':
bosses.cpp:22:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<grafo[co].size();i++){
                   ~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...