제출 #243041

#제출 시각아이디문제언어결과실행 시간메모리
243041HachiMinhEaster Eggs (info1cup17_eastereggs)C++14
100 / 100
26 ms384 KiB
#include<bits/stdc++.h>
#include "grader.h"
using namespace std;
#define ll long long
#define fi first
#define se second
#define mp make_pair
#define pb push_back
typedef vector<int> vct;
vct HMS[600],USS;
void dfs(int u,int pa)
{
	USS.pb(u);
	for(int i=0;i<HMS[u].size();i++)
	{
		int d=HMS[u][i];
		if(d!=pa)
		{
			dfs(d,u);
		}
	}
}
int check(int mid)
{
	vector<int> KMS;
	for(int i=0;i<=mid;i++)
	{
		KMS.pb(USS[i]);
	}
	return query(KMS);
}
int findEgg(int N,vector<pair<int,int> >bridges)
{
	USS.clear();
	for(int i=0;i<N-1;i++)
	{
		int u=bridges[i].fi,v=bridges[i].se;
		HMS[u].pb(v);
		HMS[v].pb(u);
	}
	dfs(1,0);
	int l=0,r=USS.size()-1;
	while(l<r)
	{
		int mid=(l+r)/2;
		if(check(mid)) r=mid;
		else l=mid+1;
	}
	for(int i=0;i<N+7;i++) HMS[i].clear();
	return USS[l];
}

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

eastereggs.cpp: In function 'void dfs(int, int)':
eastereggs.cpp:14:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<HMS[u].size();i++)
              ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...