이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "grader.h"
#define MAX 512
using namespace std;
vector<int> adj[ MAX + 10 ];
vector<int> nodes;
void dfs( int node, int parent ) {
nodes.push_back( node );
for( auto next : adj[ node ] )
if( next != parent )
dfs( next, node );
}
int check( int pos ) {
vector<int> nodesQuery;
for( int i = 0; i < pos; i++ )
nodesQuery.push_back( nodes[ i ] );
return query( nodesQuery );
}
int findEgg( int N, vector<pair<int, int>> bridges ) {
for( int i = 1; i <= N; i++ )
adj[ i ].clear();
nodes.clear();
for( auto it : bridges ) {
adj[ it.first ].push_back( it.second );
adj[ it.second ].push_back( it.first );
}
dfs( 1, -1 );
int left = 0;
int right = nodes.size();
while( left + 1 < right ) {
int med = ( left + right ) / 2;
if( check( med ) == 1 )
right = med;
else left = med;
}
return nodes[ right - 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... |