Submission #1195075

#TimeUsernameProblemLanguageResultExecution timeMemory
1195075Hamed_GhaffariEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
7 ms504 KiB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;

const int MXN = 513;

vector<int> g[MXN], ord;

void dfs(int v, int p=0) {
    ord.push_back(v);
    for(int u : g[v])
        if(u!=p)
            dfs(u, v);
}

bool imgoingbackto505;

int findEgg(int n, vector < pair < int, int > > bridges)
{
    if(!imgoingbackto505) {
        for(int i=0; i<n-1; i++) {
            g[bridges[i].first].push_back(bridges[i].second);
            g[bridges[i].second].push_back(bridges[i].first);
        }
        dfs(1);
        imgoingbackto505 = 1;
    }
    int l=-1, r=n-1;
    while(r-l>1) {
        int mid = l+r>>1;
        vector<int> vec;
        for(int i=0; i<=mid; i++)
            vec.push_back(ord[i]);
        (query(vec) ? r : l) = mid;
    }
    return ord[r];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...