제출 #446226

#제출 시각아이디문제언어결과실행 시간메모리
446226mariowongBosses (BOI16_bosses)C++14
100 / 100
1340 ms684 KiB
#include <bits/stdc++.h>

using namespace std;

int n,x,u,ans,boss[5005],sum[5005],now,summm;
bool vis[5005];
vector <int> edge[5005];
queue <int> q;
stack<int> s;
int main(){
	cin >> n;
	for (int i=1;i<=n;i++){
		cin >> x;
		for (int j=1;j<=x;j++){
			cin >> u;
			edge[u].push_back(i);	
		}
	}
	ans=1e9;
	for (int i=1;i<=n;i++){
		for (int j=1;j<=n;j++){
			vis[j]=false;
			boss[j]=0; sum[j]=0;
		}
		q.push(i); s.push(i); vis[i]=true;
		while (!q.empty()){
			now=q.front();
			for (int i=0;i<edge[now].size();i++){
				if (!vis[edge[now][i]]){
					vis[edge[now][i]]=true;
					boss[edge[now][i]]=now;
					q.push(edge[now][i]);
					s.push(edge[now][i]);
				}
			}
			q.pop();
		}
		while (!s.empty()){
			sum[s.top()]++;
			sum[boss[s.top()]]+=sum[s.top()];
			s.pop();
		}
		summm=0;
		for (int j=1;j<=n;j++){
			summm+=sum[j];
		}
		for (int j=1;j<=n;j++){
			if (!vis[j])
			summm=1e9;
			
		}
		ans=min(ans,summm);
	}
	cout << ans << "\n";
	return 0;
}

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

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