Submission #1146009

#TimeUsernameProblemLanguageResultExecution timeMemory
1146009damyannEaster Eggs (info1cup17_eastereggs)C++20
80 / 100
8 ms488 KiB
#include<bits/stdc++.h>
#include "grader.h"
using namespace std;
vector<int>v[512];
vector<int>s;
int used[515];
void topSort(int beg)
{
    used[beg]=1;
    s.push_back(beg);
    int sz=v[beg].size();
    for(int i=0;i<sz;i++)
    {
        if(!used[v[beg][i]])
            topSort(v[beg][i]);
    }
}
int binSearch(int n)
{
    int l=1,r=n,mid;
    while(l<r)
    {
        mid=(l+r)/2;
        vector<int>h;
        for(int i=0;i<mid;i++)
            h.push_back(s[i]);
        if(query(h))
             r=mid;
        else
            l=mid+1;
    }
   for(int i=1;i<=n;i++)
    {
        v[i].clear();
        used[i]=0;
    }
   s.clear();
   return s[l-1];
}
int findEgg(int N, vector < pair < int, int > > bridges)
{ 
    
    vector<pair<int,int>>f=bridges;
    for(int i=0;i<f.size();i++)
    {
        v[f[i].first].push_back(f[i].second);
        v[f[i].second].push_back(f[i].first);
    }
    topSort(1);
    /*for(int i=0;i<n;i++)
    {
       cout<<s[i]<<" ";
    }*/
    return binSearch(N);
}
/*int main()
{
    vector<pair<int,int>>brid;
    int n;
    cin>>n;
    pair<int,int>p;
    for(int i=1;i<n;i++)
    {
        //cout<<n<<endl;
        cin>>p.first>>p.second;
        brid.push_back(p);
        //cout<<"kur"<<endl;
    }
    findEgg(n,brid);
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...