제출 #274062

#제출 시각아이디문제언어결과실행 시간메모리
274062erkamBosses (BOI16_bosses)C++17
100 / 100
1278 ms12536 KiB
#include<bits/stdc++.h>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define st first
#define nd second
#define mp make_pair
#define pb push_back
using namespace std;
typedef long long lo;
const int mod=1000000007,N=500005;
lo a,b,c,d,e,f,g=1,h[N],arr[N];
string s;
vector<lo>v[N];

lo bfs(lo x){
	for(lo i=1;i<=a;i++)h[i]=0;
	queue<pair<lo,lo> >q;
	q.push({x,1});
	while(q.size()){
		lo node=q.front().st,hehe=q.front().nd;
		q.pop();
		if(h[node]) continue;
		h[node]=hehe;
		for(lo i=0;i<v[node].size();i++){
			if(h[v[node][i]]==0)q.push({v[node][i],hehe+1});
		}
	}
	lo sum=0;
	for(lo i=1;i<=a;i++){
		if(h[i]==0) return 1e18;
		sum+=h[i];
	}
	return sum;
}

void solve(){
	cin >> a;
	for(lo i=1;i<=a;i++){
		lo x,y;
		cin >> x;
		for(lo j=1;j<=x;j++){
			cin >> y;
			v[y].pb(i);
		}
	}
	lo mn=1e18;
	for(lo i=1;i<=a;i++){
		mn=min(mn,bfs(i));
	}
	assert(mn!=1e18);
	cout << mn << endl;
}
 
int main(){
	#ifdef local
		freopen("in.txt","r",stdin);
		freopen("out.txt","w",stdout);
	#endif
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);
	// cin >> g;
	while(g--)solve();
}

컴파일 시 표준 에러 (stderr) 메시지

bosses.cpp: In function 'lo bfs(lo)':
bosses.cpp:24:15: warning: comparison of integer expressions of different signedness: 'lo' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |   for(lo i=0;i<v[node].size();i++){
      |              ~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...