# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
525622 | tudor | Easter Eggs (info1cup17_eastereggs) | C++17 | 20 ms | 356 KiB |
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 <iostream>
#include <vector>
#include "grader.h"
using namespace std;
const int nmax = 512;
int n;
vector < pair < int, int > > bridges;
vector < int > g[nmax + 1];
vector < int > ord;
vector < int > q;
void dfs ( int node, int parent ) {
ord.push_back ( node );
for ( int i = 0; i < g[node].size (); i++ )
if ( g[node][i] != parent )
dfs ( g[node][i], node );
}
/**
int query ( vector < int > islands ) {
int r;
cin >> r;
return r;
} **/
int findEgg ( int n, vector < pair < int, int > > bridges ) {
ord.clear ();
for ( int i = 1; i <= n; i++ )
g[i].clear ();
for ( int i = 0; i < n - 1; i++ ) {
g[bridges[i].first].push_back ( bridges[i].second );
g[bridges[i].second].push_back ( bridges[i].first );
}
dfs ( 1, 0 );
int st = 0, dr = n - 2, mij, poz = n - 1;
while ( st <= dr ) {
int mij = st + ( dr - st ) / 2;
q.clear ();
for ( int i = 0; i <= mij; i++ )
q.push_back ( ord[i] );
if ( query ( q ) == 1 )
dr = mij - 1, poz = mij;
else
st = mij + 1;
}
return ord[poz];
}
/*
int main() {
cin >> n;
bridges.resize ( n );
for ( int i = 0; i < n - 1; i++ )
cin >> bridges[i].first >> bridges[i].second;
cout << findEgg ( n, bridges );
return 0;
} */
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |