Submission #319324

# Submission time Handle Problem Language Result Execution time Memory
319324 2020-11-04T18:32:20 Z tushar_2658 Easter Eggs (info1cup17_eastereggs) C++14
100 / 100
21 ms 488 KB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;

const int maxn = 513;

vector<int> edges[maxn];
int st[maxn], vert[maxn], timer = 0;

void dfs(int x, int p){
  st[x] = ++timer;
  vert[timer] = x;
  for(auto i : edges[x]){
    if(i != p){
      dfs(i, x);
    }
  }
}

int ask(int x){
  vector<int> v;
  for(int i = 1; i <= x; ++i){
    v.push_back(vert[i]);
  }
  int ret = query(v);
  return ret;
}

int findEgg (int N, vector < pair < int, int > > bridges)
{
  for(int i = 1; i <= N; ++i){
    edges[i].clear();
    st[i] = vert[i] = 0;
  }
  timer = 0;
  for(auto i : bridges){
    edges[i.first].push_back(i.second);
    edges[i.second].push_back(i.first);
  }
  dfs(1, 1);
  int lo = 1, hi = N;
  while(lo < hi){
    int  mid = (lo + hi) >> 1;
    if(ask(mid)){
      hi = mid;
    }else {
      lo = mid + 1;
    }
  }
  return vert[lo];
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Number of queries: 4
2 Correct 1 ms 364 KB Number of queries: 4
3 Correct 1 ms 364 KB Number of queries: 4
4 Correct 1 ms 364 KB Number of queries: 4
# Verdict Execution time Memory Grader output
1 Correct 6 ms 364 KB Number of queries: 8
2 Correct 14 ms 364 KB Number of queries: 9
3 Correct 20 ms 364 KB Number of queries: 9
4 Correct 18 ms 364 KB Number of queries: 9
# Verdict Execution time Memory Grader output
1 Correct 21 ms 364 KB Number of queries: 9
2 Correct 16 ms 364 KB Number of queries: 9
3 Correct 17 ms 488 KB Number of queries: 9
4 Correct 18 ms 364 KB Number of queries: 9