제출 #1304498

#제출 시각아이디문제언어결과실행 시간메모리
1304498nagorn_phEaster Eggs (info1cup17_eastereggs)C++20
87 / 100
8 ms508 KiB
#include <bits/stdc++.h>
#include "grader.h"
#define emb emplace_back

using namespace std;

vector <int> adj[600], path;

void dfs(int u, int p){
    path.emb(u);
    for (auto v : adj[u]) {
        if (v == p) continue;
        dfs(v, u);
    }
}

int findEgg (int n, vector < pair < int, int > > bridges)
{
    for (int i = 1; i <= n; i++) adj[i].clear();
    for (auto [u, v] : bridges) adj[u].emb(v), adj[v].emb(u);   
    path.clear();
    path.emb(0);
    dfs(1, 1);
    int l = 1, r = n;
    int ans = 0;
    while (l <= r) {
        int mid = (l + r) / 2;
        vector <int> que;
        for (int i = 1; i <= mid; i++) que.emb(path[i]);
        int x = query(que);
        if (x) r = mid - 1, ans = path[mid];
        else l = mid + 1;
    }
    return ans;
}

/*
1 -> 2 -> 4 -> 3 -> 5
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...