Submission #1335569

#TimeUsernameProblemLanguageResultExecution timeMemory
1335569trandaihao5555Easter Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms488 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

#define pb push_back

template<class _,class __>
    bool minimize(_ & a,const __ b) {
        if (a > b) {
            a = b;
            return true;
        }
        return false;
    }

const int MaxN = 555;

int n,Arr[MaxN];
vector<int> a[MaxN];

void dfs(int u,int p) {
    Arr[++n] = u;
    for (int v : a[u]) {
        if (v == p) continue;
        dfs(v,u);
    }
}

int findEgg (int N, vector < pair < int, int > > bridges)
{
//    if (query ({1})) return 1;
//    return N;
    n = 0;
    for (pair<int,int> tmp : bridges) {
        int u = tmp.first;
        int v = tmp.second;
        a[u].pb(v);
        a[v].pb(u);
    }
    dfs(1,-1);
    int l = 1, r = n;
    while (l < r) {
        int mid = (l+r) >> 1;
        vector<int> tmp;
        for (int i=1;i<=mid;i++) tmp.pb(Arr[i]);
        if (query(tmp)) {
            r = mid;
        }
        else l = mid + 1;
    }
    for(int i=1;i<=n;i++) a[i].clear();
    return Arr[l];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...