Submission #735642

#TimeUsernameProblemLanguageResultExecution timeMemory
735642MODDIBosses (BOI16_bosses)C++14
100 / 100
634 ms764 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair typedef long long ll; typedef pair<long long, long long> pll; typedef pair<int,int> pii; typedef vector<long long> vl; typedef vector<int> vi; int n; vi G[5100]; vector<pii> ord; ll rez = 0, all = 0; bool vis[5100]; void bfs(int v, int br) { if(vis[v] and br!=ord.size()){bfs(ord[br].first, br+1); return;} else if(vis[v] and br==ord.size())return; vis[v]=true; all++; if(br==0)rez+=1; else rez+=ord[br-1].second; for(auto next : G[v]) { if(!vis[next] and br!=0){ord.push_back({next, ord[br-1].second+1});} else if (!vis[next] and br==0)ord.push_back({next, 2}); } if(br==ord.size())return; bfs(ord[br].first, br+1); } int main(){ cin>>n; for(int i = 0; i < n; i++){ int k; cin>>k; for(int j = 0; j < k; j++){ int a; cin>>a; a--; G[a].pb(i); } } ll ans = 1e9; for(int i = 0; i < n; i++){ rez = 0; all = 0; memset(vis, false, sizeof vis); ord.clear(); bfs(i, 0); // cout<<rez<<endl; if(all==n) ans = min(ans, rez); } cout<<ans<<endl; return 0; }

Compilation message (stderr)

bosses.cpp: In function 'void bfs(int, int)':
bosses.cpp:17:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     if(vis[v] and br!=ord.size()){bfs(ord[br].first, br+1); return;}
      |                   ~~^~~~~~~~~~~~
bosses.cpp:18:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |     else if(vis[v] and br==ord.size())return;
      |                        ~~^~~~~~~~~~~~
bosses.cpp:28:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     if(br==ord.size())return;
      |        ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...