Submission #1173204

#TimeUsernameProblemLanguageResultExecution timeMemory
1173204nguyenkhangninh99Easter Eggs (info1cup17_eastereggs)C++17
100 / 100
8 ms512 KiB

#include "grader.h"
#include <bits/stdc++.h>

using namespace std;

const int maxn = 517;
vector<int> g[maxn], f;

void dfs(int u, int pre){
    f.push_back(u);

    for(int v: g[u]){
        if(v != pre) dfs(v, u);
    }
}

int findEgg(int N, vector <pair<int, int>> bridges){
    int n = N;
    f.clear();
    for(auto [u, v]: bridges){
      g[u].push_back(v);
      g[v].push_back(u);
    }
    f.push_back(0);
    dfs(1, 0);
    for(int i = 1; i <= n; i++) g[i].clear();
    int l = 1, r = n - 1, ans = n;

    while(l <= r){
        int mid = (l + r) / 2;
        
        vector<int> v;
        for(int i = 1; i <= mid; i++) v.push_back(f[i]);
    
        if(query(v) == 1){
            ans = mid;
            r = mid - 1;
        }
        else l = mid + 1;
    }

    return f[ans];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...