# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
107180 | stefdasca | Bosses (BOI16_bosses) | C++14 | 1525 ms | 1024 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
int n, cost, ans = (1<<30);
int sz[5002];
vector<int>v[5002];
vector<int>nt[5002];
bool viz[5002];
int s;
void bfs(int nod)
{
memset(viz, 0, sizeof(viz));
viz[nod] = 1;
queue<int>q;
q.push(nod);
while(!q.empty())
{
int t = q.front();
q.pop();
for(int j = 0; j < v[t].size(); ++j)
{
int vecin = v[t][j];
if(!viz[vecin])
{
nt[t].push_back(vecin);
s++;
viz[vecin] = 1;
q.push(vecin);
}
}
}
}
void dfs(int nod)
{
sz[nod] = 1;
for(int i = 0; i < nt[nod].size(); ++i)
{
int vecin = nt[nod][i];
dfs(vecin);
sz[nod] += sz[vecin];
}
cost += sz[nod];
}
int main()
{
cin >> n;
for(int i = 1; i <= n; ++i)
{
int k;
cin >> k;
for(int j = 1; j <= k; ++j)
{
int nr;
cin >> nr;
v[nr].push_back(i);
}
}
for(int i = 1; i <= n; ++i)
{
for(int j = 1; j <= n; ++j)
nt[j].clear();
s = 0;
bfs(i);
cost = 0;
if(s == n-1)
{
dfs(i);
ans = min(ans, cost);
}
}
cout << ans;
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |