제출 #1053966

#제출 시각아이디문제언어결과실행 시간메모리
1053966SulAEaster Eggs (info1cup17_eastereggs)C++17
100 / 100
15 ms752 KiB
#include "grader.h"
#include <queue>
using namespace std;

int findEgg (int n, vector<pair<int,int>> bridges) {
    vector<int> adj[n + 1];
    bool visited[n + 1];
    memset(visited, false, sizeof visited);
    for (auto pair : bridges) {
        int u = pair.first, v = pair.second;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    vector<int> order;
    queue<int> q; q.push(1);
    visited[1] = true;
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        order.push_back(u);
        for (int v : adj[u]) if (!visited[v]) {
            q.push(v);
            visited[v] = true;
        }
    }
    int l = 0, r = n-1;
    while (r > l) {
        int mid = (l+r)/2;
        vector<int> myquery{};
        for (int i = 0; i <= mid; i++) myquery.push_back(order[i]);
        bool res = query(myquery) == 1;
//        cout << "MY QUERY IS ";
//        for (int u : myquery) cout << u << " ";
//        cout << '\n';
        if (res) r = mid;
        else l = mid+1;
    }
    return order[l];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...