# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
918110 | 2024-01-29T13:10:01 Z | Elwino008 | Easter Eggs (info1cup17_eastereggs) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "grader.h" using namespace std; #define endl '\n' #define pii pair<int, int> #define pb push_back #define F first #define S second #define ll long long //#define int ll #define io ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define M_PI 3.14159265358979323846 #define all(v) v.begin(), v.end() #define pss pair<string, string> #define no cout<<"NO"<<endl; #define yes cout<<"YES"<<endl; #define imp cout<<-1<<endl; #define flu cout.flush(); int n, used[1055]; vector<int>a[1055]; vector<int>nodes; void dfs(int node){ used[node]=1; nodes.pb(node); for(int i : a[node]){ if(used[i]==0){ dfs(i); } } } int findEgg (int N, vector < pair < int, int > > bridges) { int sz=a.size(); for(int i=0; i<sz; i++){ a[i].clear(); } for(int i=1; i<=n; i++){ used[i]=0; } nodes.clear(); for(pii i : bridges){ int f=i.F, s=i.S; a[f].pb(s); a[s].pb(f); } dfs(1); n=N; int l=0, r=n-2; while(l<=r){ int mid=(l+r)/2; vector<int>islands; for(int i=l; i<=mid; i++){ islands.pb(nodes[i]); } int ans; ans=query(islands); if(ans==1){ r=mid-1; } else{ l=mid+1; } } return r+1; }