| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1319779 | g31nius | Easter Eggs (info1cup17_eastereggs) | C++20 | 0 ms | 0 KiB |
#include <vector>
#include <map>
#include <utility>
using namespace std;
void dfs ( int node, vector <int> v, vector <int> adj[521], map <int, int> mp ) {
mp[node] = 1;
v.push_back ( node );
for ( auto i: adj[node] ) {
if ( mp[i] == 0 ) {
dfs ( i, v, adj, mp );
}
}
}
int findEgg(int N, vector<pair<int, int>> bridges) {
map <int, int> mp;
vector <int> adj[521];
vector< int> v;
for (auto& edge : bridges) {
adj[edge.first].push_back(edge.second);
adj[edge.second].push_back(edge.first);
}
dfs ( 1, v, adj, mp );
int st = 0, dr = N-1, mij;
while ( st < dr ) {
mij = (st+dr)/2;
vector <int> v2;
for ( int i = 0; i <= mij; i++ ) {
v2.push_back(v[i]);
}
if ( query ( v2 ) == 1 ) {
dr = mij;
}
else {
st = mij;
}
}
return dr;
}
