Submission #485954

#TimeUsernameProblemLanguageResultExecution timeMemory
485954Neacsu_MihaiEaster Eggs (info1cup17_eastereggs)C++14
87 / 100
17 ms364 KiB
#include <iostream>
#include <fstream>
#include <vector>
#include "grader.h"

#define NMAX 512

using namespace std;

//ifstream fin ("test.in");
//ofstream fout ("test.out");

//int ou;
//vector < pair< int, int > > bridges;
vector < int > G[NMAX + 1];
vector < int > vecDFS;

void DFS(int node, int tata){
    vecDFS.push_back(node);

    for(auto it : G[node]){
        if(it != tata){
            DFS(it, node);
        }
    }


}

/*
int query(vector <int> islands){
    for(int i = 0; i < islands.size(); i++){
        if(islands[i] == ou){
            return 1;
        }
    }
    return 0;
}
*/

int findEgg(int N, vector <pair <int, int> > bridges){
    vecDFS.clear();

    for(int i = 1; i <= N; i++){
        G[i].clear();
    }

    for(int i = 0; i < bridges.size(); i++){
        int A = bridges[i].first;
        int B = bridges[i].second;
        G[A].push_back(B);
        G[B].push_back(A);
    }

    DFS(1, 1);

    int lo = -1;
    int hi = N; //adica vecDFS.size();

    while(hi - lo > 1){
        int mid = lo + (hi - lo) / 2;

        if( query( vector<int>(vecDFS.begin(), vecDFS.begin() + mid + 1) ) == 1){
            hi = mid;
        }
        else {
            lo = mid;
        }
    }

    return vecDFS[hi];
}

/*
int main()
{
    int N;
    fin >> N;
    fin >> ou;

    for(int i = 1; i <= N - 1; i++){
        int a, b;
        fin >> a >> b;
        bridges.push_back({a, b});
    }

    fout << findEgg(N, bridges);
}
*/

Compilation message (stderr)

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:48:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for(int i = 0; i < bridges.size(); i++){
      |                    ~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...