제출 #1145908

#제출 시각아이디문제언어결과실행 시간메모리
1145908tolgaEaster Eggs (info1cup17_eastereggs)C++20
0 / 100
0 ms440 KiB
#include <cstring>
#include <vector>
using namespace std;
typedef long long ll;
#define endl '\n'

const int maxv = 512;
vector<int> edges[maxv];
vector<int> in;
bool visited[maxv];
int timer = 0;

int query(vector<int> islands);

bool check(int mid) {
  vector<int> nv(mid + 1);
  for (int i = 0; i <= mid; i++)
    nv[i] = in[i];

  return query(nv);
}

int bin_search() {
  int l = 0, r = in.size() - 1;
  int mid;

  vector<int> curr = in;
  while (l <= r) {
    mid = (l + r) / 2;
    if (check(mid)) {
      r = mid;
    } else
      l = mid + 1;
  }
  return mid;
}

void dfs(int start) {
  in.push_back(start);
  visited[start] = true;
  for (int next : edges[start])
    if (!visited[next])
      dfs(next);
}

void clear() {
  for (int i = 0; i < maxv; i++)
    edges[i].clear();
  memset(visited, false, sizeof(visited));
  timer = 0;
}

int findEgg(int n, vector<pair<int, int>> bridges) {
  clear();
  for (auto &[u, v] : bridges)
    edges[u].push_back(v);

  return bin_search();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...