Submission #695232

# Submission time Handle Problem Language Result Execution time Memory
695232 2023-02-04T20:07:35 Z Ahmed_Solyman Bosses (BOI16_bosses) C++14
100 / 100
1489 ms 884 KB
#include<bits/stdc++.h>
using namespace std;
vector<int>adj[5005];
vector<long long>s(5005);
vector<bool>vis(5005);
vector<int>g[5005];
void dfs1(int n){
	queue<int>q;
	q.push(n);
	while(q.size()){
		int x=q.front();
		q.pop();
		vis[x]=1;
		for(auto i:adj[x]){
			if(!vis[i]){
				g[x].push_back(i);
				vis[i]=1;
				q.push(i);
			}
		}
	}
}
long long dfs2(int n){
	if(s[n]){
		return s[n];
	}
	long long sum=1;
	for(auto i:g[n]){
		dfs2(i);
		sum+=s[i];
	}
	return s[n]=sum;
}
int main(){
	int n;cin>>n;
	for(int i=1;i<=n;i++){
		int k;cin>>k;
		for(int j=0;j<k;j++){
			int x;cin>>x;
			adj[x].push_back(i);
		}
	}
	long long ans=4e18;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			vis[j]=0;
			s[j]=0;
			g[j].clear();
		}
		dfs1(i);
		long long sum=0;
		bool valid=1;
		for(int j=1;j<=n;j++){
			if(!vis[j]){
				valid=0;
			}
		}
		if(valid){
			for(int j=1;j<=n;j++){
				sum+=dfs2(j);
			}
			ans=min(ans,sum);
		}
	}
	if(ans==4e18)while(1)cout<<"g";
	cout<<ans<<endl;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 468 KB Output is correct
2 Correct 0 ms 468 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 1 ms 468 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 468 KB Output is correct
2 Correct 0 ms 468 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 1 ms 468 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 468 KB Output is correct
7 Correct 0 ms 468 KB Output is correct
8 Correct 1 ms 468 KB Output is correct
9 Correct 1 ms 468 KB Output is correct
10 Correct 1 ms 468 KB Output is correct
11 Correct 1 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 468 KB Output is correct
2 Correct 0 ms 468 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 1 ms 468 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 468 KB Output is correct
7 Correct 0 ms 468 KB Output is correct
8 Correct 1 ms 468 KB Output is correct
9 Correct 1 ms 468 KB Output is correct
10 Correct 1 ms 468 KB Output is correct
11 Correct 1 ms 468 KB Output is correct
12 Correct 6 ms 596 KB Output is correct
13 Correct 5 ms 724 KB Output is correct
14 Correct 252 ms 836 KB Output is correct
15 Correct 69 ms 724 KB Output is correct
16 Correct 719 ms 832 KB Output is correct
17 Correct 1460 ms 884 KB Output is correct
18 Correct 1489 ms 884 KB Output is correct