Submission #1190614

#TimeUsernameProblemLanguageResultExecution timeMemory
1190614Panda50OEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
10 ms1052 KiB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;

const int mxN = 525;
// vector<int> adj[mxN];
// vector<int> path[mxN];
// bool vis[mxN];

void dfs(int u, vector<vector<int>>& adj, vector<vector<int>>& path, vector<bool>& vis) {
    vis[u] = true;
    path[0].emplace_back(u);
    path[path[0].size()] = path[0];
    for(auto v : adj[u]) {
        if(vis[v]) continue;
        dfs(v, adj, path, vis);
    }
    return;
}

int findEgg (int N, vector < pair < int, int > > bridges)
{
    vector<vector<int>> adj(525), path(525);
    vector<bool> vis(525, false);
    // if (query ({1})) return 1;
    for(auto [a,b] : bridges) {
        adj[a].emplace_back(b);
        adj[b].emplace_back(a);
    }

    dfs(1, adj, path, vis);

    int l = 1, r = N;
    while(l < r) {
        int mid = (l+r) / 2;
        if(query(path[mid])) {
            r = mid;
        } else {
            l = mid+1;
        }
    }

    return path[l].back();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...