# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
786792 | 2023-07-18T12:51:17 Z | borisAngelov | Easter Eggs (info1cup17_eastereggs) | C++17 | 19 ms | 480 KB |
#include "grader.h" #include <bits/stdc++.h> using namespace std; const int maxn = 520; int n; vector<int> g[maxn]; vector<int> in_order; void dfs(int node, int par) { in_order.push_back(node); for (auto next_node : g[node]) { if (next_node != par) { dfs(next_node, node); } } } int findEgg(int N, vector<pair<int, int>> edges) { n = N; for (int i = 1; i <= n; ++i) { g[i].clear(); } in_order.clear(); for (int i = 0; i < edges.size(); ++i) { int x = edges[i].first; int y = edges[i].second; g[x].push_back(y); g[y].push_back(x); } dfs(1, -1); int l = 1; int r = n; vector<int> result(maxn, -1); while (l <= r) { int mid = (l + r) / 2; vector<int> ask; for (int i = 0; i < mid; ++i) { ask.push_back(in_order[i]); } int curr = -1; if (result[mid] != -1) { curr = result[mid]; } else { curr = query(ask); } if (curr == 1) { r = mid - 1; } else { l = mid + 1; } } return in_order[l - 1]; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 1 ms | 208 KB | Number of queries: 5 |
2 | Partially correct | 1 ms | 208 KB | Number of queries: 5 |
3 | Partially correct | 1 ms | 208 KB | Number of queries: 5 |
4 | Partially correct | 1 ms | 208 KB | Number of queries: 5 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 336 KB | Number of queries: 9 |
2 | Correct | 10 ms | 340 KB | Number of queries: 9 |
3 | Correct | 14 ms | 360 KB | Number of queries: 9 |
4 | Correct | 13 ms | 352 KB | Number of queries: 9 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 19 ms | 336 KB | Number of queries: 10 |
2 | Correct | 14 ms | 384 KB | Number of queries: 9 |
3 | Partially correct | 13 ms | 480 KB | Number of queries: 10 |
4 | Partially correct | 12 ms | 360 KB | Number of queries: 10 |