Submission #1337398

#TimeUsernameProblemLanguageResultExecution timeMemory
1337398ElayV13Easter Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms520 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

vector<int>G[1001];
vector<int>tree;

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

int findEgg (int N, vector < pair < int, int > > bridges)
{
      tree.clear();
      for(int i=1;i<=N;i++) G[i].clear();
      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,-1);
      int l=0,r=tree.size()-2,mx=-1;
      while(l<=r)
      {
            int mid=(l+r)>>1;
            vector<int>nodes;
            for(int i=0;i<=mid;i++) nodes.push_back(tree[i]);
            if(query(nodes)==0)
            {
                  mx=max(mx,mid);
                  l=mid+1;
            }
            else r=mid-1;
      }
      return tree[mx+1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...