Submission #825876

# Submission time Handle Problem Language Result Execution time Memory
825876 2023-08-15T09:00:28 Z OAleksa Bosses (BOI16_bosses) C++14
0 / 100
1 ms 596 KB
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std; 
#define int long long
const int maxn = 5010;
vector<int> g[maxn], t[maxn];
vector<int> vis(maxn), d(maxn);
int ans = 1e18, res;
void dfs(int v) {
	vis[v] = 1;
	for(auto u : t[v]) {
		if(!vis[u])	{
			dfs(u);
			d[v] += d[u];
		}
	}
	res += ++d[v];
}

signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int tt = 1;
	//cin >> tt;
	while(tt--) {
		int n;
		cin >> n;
		for(int i = 1;i <= n;i++) {
			int k;
			cin >> k;
			for(int j = 1;j <= k;j++) {
				int x;
				cin >> x;
				g[x].push_back(i);
			}
		}
		queue<int> q;
		for(int i = 1;i <= n;i++) {
			q.push(i);
			for(int j = 1;j <= n;j++) {
				vis[j] = false;
				d[j] = 0;
				t[j].clear();
			}

			while(!q.empty()) {
				auto v = q.front();
				q.pop();
				vis[v] = true;
				for(auto u : g[v]) {
					t[v].push_back(u);
					if(vis[u])
						continue;
					q.push(u);
				}
			}
			for(int j = 1;j <= n;j++)
				vis[j] = false;
			res = 0;
			dfs(i);
			ans = min(ans, res);
		}
		cout << ans;
	}
   return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Incorrect 0 ms 596 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Incorrect 0 ms 596 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Incorrect 0 ms 596 KB Output isn't correct
3 Halted 0 ms 0 KB -