Submission #283427

# Submission time Handle Problem Language Result Execution time Memory
283427 2020-08-25T18:07:08 Z YJU Bosses (BOI16_bosses) C++14
100 / 100
804 ms 784 KB
#include<bits/stdc++.h>
#pragma GCC optimize("unroll-loops,no-stack-protector")
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pll;
const ll MOD=1e9+7;
const ll MOD2=998244353;
const ll N=5e3+5;
const ld pi=3.14159265359;
const ll INF=(1LL<<60);
#define SQ(i) ((i)*(i))
#define REP(i,n) for(ll i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define pb push_back
#define mp make_pair
#define X first
#define Y second
#define setp setprecision
#define lwb lower_bound
#define SZ(_a) (ll)_a.size()

ll n,x,ans=INF,tmp,d[N],t;
queue<ll> q;
vector<ll> v[N];

ll f(ll id){
	memset(d,-1,sizeof(d));
	d[id]=tmp=0;
	q.push(id);
	while(SZ(q)){
		x=q.front();
		q.pop();
		tmp+=d[x];
		for(ll i:v[x]){
			if(d[i]==-1){
				d[i]=d[x]+1;
				q.push(i);
			}
		}
	}
	REP1(i,n)if(d[i]==-1)return INF;
	return tmp+n;
}

int main(){
	ios_base::sync_with_stdio(0);cin.tie(0);	
	cin>>n;
	REP1(i,n){
		cin>>t;
		while(t--)cin>>x,v[x].pb(i);
	}
	REP1(i,n)ans=min(ans,f(i));
	cout<<ans<<"\n";
	return 0;
}

# Verdict Execution time Memory Grader output
1 Correct 1 ms 512 KB Output is correct
2 Correct 0 ms 512 KB Output is correct
3 Correct 1 ms 512 KB Output is correct
4 Correct 1 ms 512 KB Output is correct
5 Correct 0 ms 512 KB Output is correct
6 Correct 1 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 512 KB Output is correct
2 Correct 0 ms 512 KB Output is correct
3 Correct 1 ms 512 KB Output is correct
4 Correct 1 ms 512 KB Output is correct
5 Correct 0 ms 512 KB Output is correct
6 Correct 1 ms 512 KB Output is correct
7 Correct 1 ms 512 KB Output is correct
8 Correct 1 ms 512 KB Output is correct
9 Correct 1 ms 512 KB Output is correct
10 Correct 1 ms 512 KB Output is correct
11 Correct 1 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 512 KB Output is correct
2 Correct 0 ms 512 KB Output is correct
3 Correct 1 ms 512 KB Output is correct
4 Correct 1 ms 512 KB Output is correct
5 Correct 0 ms 512 KB Output is correct
6 Correct 1 ms 512 KB Output is correct
7 Correct 1 ms 512 KB Output is correct
8 Correct 1 ms 512 KB Output is correct
9 Correct 1 ms 512 KB Output is correct
10 Correct 1 ms 512 KB Output is correct
11 Correct 1 ms 512 KB Output is correct
12 Correct 5 ms 640 KB Output is correct
13 Correct 4 ms 640 KB Output is correct
14 Correct 169 ms 760 KB Output is correct
15 Correct 11 ms 640 KB Output is correct
16 Correct 617 ms 784 KB Output is correct
17 Correct 789 ms 724 KB Output is correct
18 Correct 804 ms 768 KB Output is correct