This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pii pair<int,int>
#define pll pair<long long,long long>
#define pb push_back
#define debug(x) cerr<<#x<<"="<<x<<endl
#define pq priority_queue
#define inf 1ll<<60
#define rep(i,a,b) for (int i=a;i<(b);i++)
#define MP make_pair
#define SZ(x) (int(x.size()))
#define ll long long
#define mod 1000000007
#define ALL(x) x.begin(),x.end()
#define endl "\n"
void inc(ll &a,ll b) {a=(a+b)%mod;}
void dec(ll &a,ll b) {a=(a-b+mod)%mod;}
int lowbit(ll x) {return x&(-x);}
ll p0w(ll base,ll p) {ll ret=1;while(p>0){if (p%2ll==1ll) ret=ret*base%mod;base=base*base%mod;p/=2ll;}return ret;}
#include "grader.h"
vector<int>edge[513],id;
void dfs(int u, int fa){
id.pb(u);
for(auto x:edge[u]){
if(x==fa)continue;
dfs(x,u);
}
}
int findEgg (int N, vector < pair < int, int > > bridges){
rep(i,0,N+1)edge[i].clear();
id.clear();
for(auto x:bridges){
edge[x.fi].pb(x.se);
edge[x.se].pb(x.fi);
}
dfs(1,-1);
ll lo=0,hi=N-1;
while(lo<hi){
ll mid=lo+hi+1>>1;
vector<int>left;
rep(i,lo,mid)left.pb(id[i]);
if (query(vector<int>(id.begin(), id.begin() + mid)))hi=mid-1;
else lo=mid;
}
return id[lo];
}
Compilation message (stderr)
eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:44:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
44 | ll mid=lo+hi+1>>1;
| ~~~~~^~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |