Submission #439491

# Submission time Handle Problem Language Result Execution time Memory
439491 2021-06-30T06:01:13 Z Yazan_Alattar Easter Eggs (info1cup17_eastereggs) C++14
100 / 100
24 ms 344 KB
#include <iostream>
#include <fstream>
#include <cstring>
#include <cmath>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <algorithm>


#include "grader.h"

using namespace std;

#define endl "\n"
#define F first
#define S second
#define pb push_back
typedef long long ll;
const int M = 550;
const int mod = 1e9+7;

vector <int> adj[M], path;

void dfs(int node, int p)
{
    path.pb(node);
    for(auto i : adj[node]){
        if(i == p) continue;
        dfs(i, node);
    }
    return;
}

int findEgg (int N, vector < pair < int, int > > bridges)
{
    for (int i = 1; i <= N; i++) adj[i].clear();
	path.clear();
    for(auto i : bridges){
        adj[i.F].pb(i.S);
        adj[i.S].pb(i.F);
    }
    dfs(1, 0);

    int l = 0, r = N - 1;
	while (l != r) {
		int mid = (l + r + 1) / 2;
		if (query(vector<int>(path.begin(), path.begin() + mid))) r = mid - 1;
		else l = mid;
	}
	return path[l];
}

# Verdict Execution time Memory Grader output
1 Correct 1 ms 200 KB Number of queries: 4
2 Correct 2 ms 200 KB Number of queries: 4
3 Correct 1 ms 200 KB Number of queries: 4
4 Correct 1 ms 200 KB Number of queries: 4
# Verdict Execution time Memory Grader output
1 Correct 6 ms 336 KB Number of queries: 8
2 Correct 16 ms 328 KB Number of queries: 9
3 Correct 23 ms 344 KB Number of queries: 9
4 Correct 24 ms 344 KB Number of queries: 9
# Verdict Execution time Memory Grader output
1 Correct 21 ms 344 KB Number of queries: 9
2 Correct 23 ms 340 KB Number of queries: 9
3 Correct 22 ms 332 KB Number of queries: 9
4 Correct 20 ms 336 KB Number of queries: 9