Submission #1146002

#TimeUsernameProblemLanguageResultExecution timeMemory
1146002mitko7Easter Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms1028 KiB
#include <iostream>
#include <vector>
#include "grader.h"

using namespace std;

vector<int> g[520];
vector<int> pre[520];
vector<int> t;
bool preCalc = 0;
bool used[520];

void dfs(int i) {
    used[i]=1;
    t.push_back(i);
    for(auto x : g[i]) if(!used[x]) dfs(x);
}

int findEgg(int N, vector<pair<int, int>> bridges)
{
    if(!preCalc) {
        for(auto x : bridges) {
            g[x.first].push_back(x.second);
            g[x.second].push_back(x.first);
        }
        dfs(1);
        vector<int> q;
        for(int i = 0; i < N; i++) {
            q.push_back(t[i]);
            pre[i+1]=q;
        }
        preCalc=1;
    }
    int l = 1, r = N, m;
    while(l<r) {
        int m = (l+r)/2;
        if(query(pre[m])) {
            r = m;
        }
        else l=m+1;
    }
    return t[l-1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...