제출 #1145991

#제출 시각아이디문제언어결과실행 시간메모리
1145991ivailo_ganchevEaster Eggs (info1cup17_eastereggs)C++20
87 / 100
8 ms512 KiB
#include <bits/stdc++.h>
#include "grader.h"
#define endl '\n'
using namespace std;
const int MAXN = 1024;
vector<int>e[MAXN];
vector<int>order;
int n;
void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
}
void dfs(int node, int parent)
{
    order.push_back(node);
    for(int &nb : e[node])
    {
        if(nb==parent)
            continue;
        dfs(nb, node);
    }
}
bool check(int mid)
{
    vector<int>q;
    q.clear();
    for(int i=0;i<=mid;i++)
    {
        q.push_back(order[i]);
    }
    int qAns=query(q);
    return qAns;
}
int binarySearch()
{
    int l=0,r=order.size()-1,mid;
    while(l<=r)
    {
        mid=(l+r)/2;
        if(check(mid))r=mid-1;
        else l=mid+1;
    }
    return order[l];
}
void read(int N, vector < pair < int, int > > &bridges)
{
    n=N;
    for(pair <int , int>& i : bridges)
    {
        e[i.first].push_back(i.second);
        e[i.second].push_back(i.first);
    }
}
void clearMemory()
{
    for(int i=0;i<MAXN;i++)
    {
        e[i].clear();
    }
    order.clear();
}
int findEgg (int N, vector<pair<int,int>>bridges)
{
    read(N, bridges);
    dfs(1, -1);
    int ans=binarySearch();
    clearMemory();
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...