# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1145975 | damyann | Easter Eggs (info1cup17_eastereggs) | C++20 | 0 ms | 0 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]);
}
}
void 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;
}
}
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);
}*/