이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define N 1001
using namespace std;
vector<int> tree[N], ord, temp;
int query(vector<int> islands);
void dfs(int node, int parent) {
ord.push_back(node);
for (int child : tree[node]) {
if (child != parent) dfs(child, node);
}
}
int findEgg(int n, vector<pair<int,int>> edges) {
ord.clear();
for (int i=1; i<=n; i++) tree[i].clear();
for (int i=0; i<n-1; i++) {
int a=edges[i].first, b=edges[i].second;
tree[a].push_back(b);
tree[b].push_back(a);
}
dfs(1, 0);
int l=1, r=n;
while (l<r) {
int m=(l+r)/2;
temp.clear();
temp.insert(temp.end(), ord.begin(), ord.begin()+m);
int res = query(temp);
if (res) r = m;
else l=m+1;
}
return ord[l-1];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |