| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1351883 | KALARRY | Easter Eggs (info1cup17_eastereggs) | C++20 | 6 ms | 496 KiB |
//chockolateman
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
int counter,targ;
vector<int> adj[515];
bool status[512];
vector<int> nodes;
bool marked[512];
void dfs(int v,int p)
{
if(counter==targ)
return;
nodes.push_back(v);
if(status[v])
marked[v] = true;
counter += status[v];
for(auto u : adj[v])
if(u != p)
dfs(u,v);
}
int findEgg (int N, vector < pair < int, int > > bridges)
{
for(auto x : bridges)
{
adj[x.first].push_back(x.second);
adj[x.second].push_back(x.first);
}
for(int i = 1 ; i <= N ; i++)
status[i] = 1;
counter = 0;
int S = N;
while(S > 1)
{
int mid = S/2;
counter = 0;
targ = mid;
dfs(1,1);
int res = query(nodes);
if(res)
{
S = mid;
for(int i = 1 ; i <= N ; i++)
if(!marked[i])
status[i] = 0;
}
else
{
S -= mid;
for(auto v : nodes)
status[v] = 0;
}
for(auto v : nodes)
marked[v] = false;
nodes.clear();
}
for(int i = 1 ; i <= N ; i++)
adj[i].clear();
for(int i = 1 ; i <= N ; i++)
if(status[i])
return i;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
