Submission #651936

#TimeUsernameProblemLanguageResultExecution timeMemory
651936pauloamedBosses (BOI16_bosses)C++14
100 / 100
880 ms98924 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN = 5010; vector<int> v[MAXN]; int d[MAXN][MAXN]; int main(){ memset(d, -1, sizeof d); cin.tie(NULL)->sync_with_stdio(false); int n; cin >> n; for(int i = 0; i < n; ++i){ int k; cin >> k; for(int j = 0; j < k; ++j){ int y; cin >> y; y--; v[y].push_back(i); } } // for(int i = 0; i < n; ++i){ // cout << i << ": "; // for(auto x : v[i]) cout << x << " "; // cout << endl; // } int ans = INT_MAX; for(int i = 0; i < n; ++i){ queue<int> q; q.push(i); d[i][i] = 1; while(q.size()){ int x = q.front(); q.pop(); for(auto y : v[x]) if(d[i][y] == -1){ q.push(y); d[i][y] = d[i][x] + 1; } } int sum = 0; // cout << i << ":\n"; for(int j = 0; j < n; ++j){ // cout << d[i][j] << " "; if(d[i][j] == -1){ sum = INT_MAX; break; }else sum += d[i][j]; } // cout << "\n"; ans = min(ans, sum); } cout << ans << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...