제출 #1351671

#제출 시각아이디문제언어결과실행 시간메모리
1351671garbacaEaster Eggs (info1cup17_eastereggs)C++20
0 / 100
0 ms468 KiB
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> graph[513], ord;

void dfs(int node = 0, int parent = -1) {
	ord.push_back(node+1);
	for (int i : graph[node])
		if (i != parent) dfs(i, node);
}

int findEgg(int N, vector<pair<int, int>> bridges) {
	for (int i = 1; i <= N; i++) graph[i].clear();
	ord.clear();
	for (pair<int, int> i : bridges) {
		graph[i.first-1].push_back(i.second-1);
		graph[i.second-1].push_back(i.first-1);
	}
    queue<int> q;
    q.push(0);
    // vector<bool> vis(N+1);
    bitset<1024> vis;
    while (!q.empty())
    {
        int x{q.front()};
        q.pop(); vis[x]=1;
        ord.push_back(x+1);
        for (auto i:graph[x])
        {
            if (!vis[i])
            {
                q.push(i);
            }
        }
    }
	int l = 0, r = N - 1;
	while (l != r) {
		int mid = (l + r + 1) / 2;
		if (query(vector<int>(ord.begin(), ord.begin() + mid))) r = mid - 1;
		else l = mid;
	}
	return ord[l];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...