Submission #1113894

#TimeUsernameProblemLanguageResultExecution timeMemory
1113894julia_08Easter Eggs (info1cup17_eastereggs)C++17
0 / 100
4 ms592 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

const int MAXN = 600;

vector<int> adj[MAXN];

int pre[MAXN];

int t = 0;

void dfs(int v, int p){
  pre[v] = ++ t;

  for(auto u : adj[v]) if(u != p) dfs(u, v);
}

bool ask(int l, int r, int n){

  vector<int> islands;

  for(int i=1; i<=n; i++){
    if(l <= pre[i] && pre[i] <= r){
      islands.push_back(i);
    }
  }

  return query(islands);
}

int compute(int l, int r, int n){

  if(l == r) return l;

  int m = l + (r - l) / 2;

  if(ask(l, m, n)) return compute(l, m, n);

  return compute(m + 1, r, n);
}

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

  t = 0;

  for(int i=1; i<=n; i++) adj[i].clear();

  for(auto [a, b] : bridges){
    adj[a].push_back(b);
    adj[b].push_back(a);
  }

  dfs(1, 1);

  int x = compute(1, n, n);

  for(int i=1; i<=n; i++){
    if(pre[i] == x){
      return i;
    }
  }

}

Compilation message (stderr)

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:65:1: warning: control reaches end of non-void function [-Wreturn-type]
   65 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...