Submission #1096883

#TimeUsernameProblemLanguageResultExecution timeMemory
10968830pt1mus23Easter Eggs (info1cup17_eastereggs)C++14
87 / 100
11 ms748 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;
const int sze = 600;
vector<int> graph[sze];
vector<int> path;

void dfs(int node,int par=-1){
    path.push_back(node);
    for(auto v:graph[node]){
        if(v==par){
            continue;
        }
        dfs(v,node);
    }
}

int findEgg(int n, vector<pair<int,int>> edges){
    int ans=1;
    path.clear();
    for(int i=0;i<=n;i++){
        graph[i].clear();
    }
    for(auto v:edges){
        graph[v.first].push_back(v.second);
        graph[v.second].push_back(v.first);
    }
    dfs(1);
    int l =0;
    int r = n-1;
    vector<int> lst;
    while(l<=r){
        int mid = (l+r)/2;
        lst.clear();
        for(int i=0;i<=mid;i++){
            lst.push_back(path[i]);
        }
        if(query(lst)){
            ans=lst.back();
            r = mid-1;
        }
        else{
            l = mid+1;
        }
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...