Submission #791081

#TimeUsernameProblemLanguageResultExecution timeMemory
791081AndiRBosses (BOI16_bosses)C++14
100 / 100
964 ms652 KiB
#include <iostream> #include <fstream> #include <vector> #include <queue> using namespace std; ifstream fin ("bos.in"); ofstream fout ("bos.out"); typedef long long ll; const int Nmax=5000; int n; bool vis[Nmax]; vector <pair<int, bool>> ad[Nmax]; queue <int> q; ll sol, mn=(ll)99999999999999999; int dfs(int nod){ int s=1; for (int i=0; i<ad[nod].size(); i++){ if (ad[nod][i].second==1){ ad[nod][i].second=0; s+=dfs(ad[nod][i].first); } } sol+=s; return s; } int main() { cin>>n; int m, a; for (int i=0; i<n; i++){ cin>>m; for (int j=0; j<m; j++){ cin>>a; a--; ad[a].push_back({i, 0}); } } for (int i=0; i<n; i++){ sol=0; vis[i]=1; q.push(i); while (!q.empty()){ for (int j=0; j<ad[q.front()].size(); j++){ if (vis[ad[q.front()][j].first]==0){ q.push(ad[q.front()][j].first); vis[ad[q.front()][j].first]=1; ad[q.front()][j].second=1; } } q.pop(); } bool ok=1; for (int i=0; i<n; i++){ if (vis[i]==0) ok=0; vis[i]=0; } dfs(i); if (sol<mn && ok) mn=sol; } cout<<mn; return 0; }

Compilation message (stderr)

bosses.cpp: In function 'int dfs(int)':
bosses.cpp:19:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, bool> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |     for (int i=0; i<ad[nod].size(); i++){
      |                   ~^~~~~~~~~~~~~~~
bosses.cpp: In function 'int main()':
bosses.cpp:44:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, bool> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |             for (int j=0; j<ad[q.front()].size(); j++){
      |                           ~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...