제출 #671444

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

using namespace std;

vector<int> adj[100005];

vector<int> straight;

bool able(int idx) {
    vector<int> temp = straight;
    temp.resize(idx);

    return query(temp);
}


void dfs(int node, int par = -1) {
    straight.push_back(node);

    for (auto nxt : adj[node]) {
        if (nxt == par) continue;
        dfs(nxt, node);
    }
}

int findEgg (int N, vector < pair < int, int > > bridges)
{
    straight.clear();
    for (int i = 0; i <= N; i++) adj[i].clear();

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

    dfs(1);

    int n = straight.size();

    int lo = 1, hi = n;

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

        if (able(mid)) {
            hi = mid - 1;
            ans = straight[mid-1];
        } else lo = mid + 1;
    }

    return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:32:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     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...