제출 #1318186

#제출 시각아이디문제언어결과실행 시간메모리
1318186lucageorgescuEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
7 ms504 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

const int nmax=515;

vector <int> gr[nmax];
vector <int> ord;

int x=1;

void dfs(int nod, int par)
{
    ord.push_back(nod);

    for (auto v:gr[nod] )
        if ( v!=par )
           dfs(v,nod);
}

int findEgg(int n, vector <pair<int,int> > bridges)
{
    for (int i=1; i<=n; i++ ) 
        gr[i].clear();
	ord.clear();
	
    for (auto pi:bridges )
    {
        int xixi=pi.first;
        int y=pi.second;
        
        gr[xixi].push_back(y);
        gr[y].push_back(xixi);
    }

    for (int i=1; i<=n; i++ )
        if ( gr[i].size()==1 ) {
           x=i;
           break;
    }

    dfs(x,0);

    /*for (int i=0; i<ord.size(); i++ )
        cout << ord[i] << " ";*/

    int st=0, dr=n-1, rez=0;
    while ( st<dr ) 
    {
        int mij=(st+dr+1)/2;
        if ( query(vector <int> (ord.begin(),ord.begin()+mij))==1 ) 
            dr=mij-1;
        else 
        {
            rez=mij;
            st=mij;
        }
    }
    
    return ord[rez];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...