Submission #522184

# Submission time Handle Problem Language Result Execution time Memory
522184 2022-02-04T03:34:48 Z blue Easter Eggs (info1cup17_eastereggs) C++17
100 / 100
20 ms 636 KB
#include <vector>
#include <cassert>
#include "grader.h"
using namespace std;

using vi = vector<int>;
using pii = pair<int, int>;

const int mx = 512;

vi edge[1+mx];


vi ord(1, 0);

vi vis(1+mx, 0);

void dfs(int u, int p)
{
    vis[u] = 1;
    ord.push_back(u);
    for(int v : edge[u])
    {
        if(v != p && !vis[v]) 
            dfs(v, u);
    }
}


int findEgg (int N, vector < pair < int, int > > bridges)
{
    for(pii b: bridges)
    {
        edge[b.first].push_back(b.second);
        edge[b.second].push_back(b.first);
    }

    dfs(1, 0);

    // assert(int(bridges.size()) == N-1);
    // assert(int(ord.size()) == N+1);

    int lo = 1, hi = N;
    while(lo != hi)
    {
        int mid = (lo+hi)/2;

        vi qr;
        for(int i = 1; i <= mid; i++)
            qr.push_back(ord[i]);

        if(query(qr))
            hi = mid;
        else
            lo = mid+1;
    }

    return ord[lo];

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 200 KB Number of queries: 4
2 Correct 1 ms 200 KB Number of queries: 4
3 Correct 2 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 5 ms 328 KB Number of queries: 8
2 Correct 15 ms 524 KB Number of queries: 9
3 Correct 19 ms 576 KB Number of queries: 9
4 Correct 17 ms 476 KB Number of queries: 9
# Verdict Execution time Memory Grader output
1 Correct 17 ms 624 KB Number of queries: 9
2 Correct 17 ms 636 KB Number of queries: 9
3 Correct 20 ms 616 KB Number of queries: 9
4 Correct 16 ms 576 KB Number of queries: 9