Submission #1127617

#TimeUsernameProblemLanguageResultExecution timeMemory
1127617qrnEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
11 ms504 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

#define pb push_back
const int mxN = 513;

vector<vector<int>> graph(mxN);
vector<int> wtf;

void dfs(int node, int parent) {
    wtf.pb(node);
    for(auto u : graph[node]) {
        if(u != parent) {
            dfs(u, node);
        }
    }
}

int findEgg (int N, vector<pair <int,int>>bridges) {

    graph.resize(N + 1);
    for(int i = 1; i <= N; i++) {
        graph[i].clear();
    }
    for(int i = 0; i < N - 1; i++) {
        graph[bridges[i].first].pb(bridges[i].second);
        graph[bridges[i].second].pb(bridges[i].first);
    }    
    dfs(1, 1);

    // for(int i : wtf) cout << i << " ";
    // cout << endl;

    // baxaciqki ilk 1..mid araligindadi mi bizim easter egg
    int ans = wtf[N-1], l = 0, r = N - 2;
    while(l <= r) {
        int mid = (l + r) / 2;

        vector<int> ask;
        for(int i = 0; i <= mid; i++) {
            ask.pb(wtf[i]);
        }

        int elemi_olub = query(ask);
        if(elemi_olub) {
            ans = ask[(int)ask.size() - 1];
            r = mid - 1;
        } else {
            l = mid + 1;
        }
    }
    wtf.clear();
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...