# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
556179 |
2022-05-02T14:47:59 Z |
Olympia |
Bosses (BOI16_bosses) |
C++17 |
|
1500 ms |
936 KB |
#include <bits/stdc++.h>
using namespace std;
void dfs (vector<vector<int> > &adj, vector<int>& val, int curNode, int prevNode) {
//cout << curNode << " " << prevNode << '\n';
val[curNode] = 1;
for (int i: adj[curNode]) {
if (i != prevNode) {
dfs (adj, val, i, curNode);
val[curNode] += val[i];
}
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
vector<vector<int> > adj;
adj.resize(n);
for (int i = 0; i < n; i++) {
int k;
cin >> k;
while (k--) {
int a;
cin >> a;
a--;
adj[a].push_back(i);
}
}
int myMin = INT_MAX;
for (int i = 0; i < n; i++) {
queue<int> q;
q.push(i);
vector<bool> hasVisited; hasVisited.assign(n, false);
vector<vector<int> > new_adj(n);
hasVisited[i] = true;
while (!q.empty()) {
int curNode = q.front();
q.pop();
for (int j: adj[curNode]) {
if (!hasVisited[j]) {
q.push(j);
hasVisited[j] = true;
new_adj[curNode].push_back(j);
}
}
}
bool fine = true;
for (bool j: hasVisited) {
if (!j) {
fine = false;
}
}
if (!fine) {
continue;
}
vector<int> val(n);
dfs(new_adj, val, i, i);
int ans = 0;
for (int j: val) {
ans += j;
}
myMin = min(myMin, ans);
}
cout << myMin << '\n';
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
316 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
2 ms |
212 KB |
Output is correct |
11 |
Correct |
2 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
316 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
2 ms |
212 KB |
Output is correct |
11 |
Correct |
2 ms |
212 KB |
Output is correct |
12 |
Correct |
6 ms |
448 KB |
Output is correct |
13 |
Correct |
4 ms |
340 KB |
Output is correct |
14 |
Correct |
608 ms |
936 KB |
Output is correct |
15 |
Correct |
94 ms |
688 KB |
Output is correct |
16 |
Execution timed out |
1566 ms |
824 KB |
Time limit exceeded |
17 |
Halted |
0 ms |
0 KB |
- |