| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1304508 | Warinchai | Easter Eggs (info1cup17_eastereggs) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
vector<int>adj[600];
int n;
vector<int>vv;
void dfs(int u,int p){
vv.push_back(u);
for(auto x:adj[u])if(x!=p)dfs(x,u);
}
int findEgg (int N, vector < pair < int, int > > bridges)
{
n=N;
for(int i=0;i<=N;i++)adj[i].clear();
vv[i].clear();
for(auto [u,v]:bridges)adj[u].push_back(v),adj[v].push_back(u);
dfs(1,0);
int st=0,en=N-1;
int ans=0;
while(st<=en){
int m=(st+en)/2;
vector<int>temp;
for(int i=0;i<=m;i++)temp.push_back(vv[i]);
if(query(temp)){
en=m-1;
ans=m;
}else{
st=m+1;
}
}
return vv[ans];
}
