Submission #98958

#TimeUsernameProblemLanguageResultExecution timeMemory
98958zicon35Bosses (BOI16_bosses)C++14
0 / 100
2 ms384 KiB
#include<bits/stdc++.h> using namespace std; int n,k,v; vector< vector<int>> adj; int ans=1e9; map<int,int> vis; set<int> seen; void dfs(int u,int d,int & sum,int n){ if(vis[u]){ return; } //cout<<"u: "<<u<<d<<sum<<endl; vis[u] = 1; seen.insert(u); for(int i=0;i<adj[u].size();i++){ int to = adj[u][i]; if(!vis[to]){ sum += d; //cout<<"test"<<endl; dfs(to,d+1,sum,n); } } if(seen.size()==n){ //cout<<"here"<<sum+d<<endl; ans = min(ans,sum+d); seen.clear(); return; } } long long solve(int n){ cin>>n; adj.resize(n+2); for(int i=1;i<=n;i++){ cin>>k; for(int j=1;j<=k;j++){ cin>>v; adj[v].push_back(i); } } for(int i=1;i<=n;i++){ int sum = 1; vis.clear(); seen.clear(); dfs(i,1,sum,n); } return ans; } int main(){ cout<<solve(n)<<endl; return 0; }

Compilation message (stderr)

bosses.cpp: In function 'void dfs(int, int, int&, int)':
bosses.cpp:18:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<adj[u].size();i++){
                 ~^~~~~~~~~~~~~~
bosses.cpp:27:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(seen.size()==n){
        ~~~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...