제출 #61618

#제출 시각아이디문제언어결과실행 시간메모리
61618Flying_dragon_02Easter Eggs (info1cup17_eastereggs)C++17
100 / 100
40 ms572 KiB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;

#define fi first
#define se second
#define pb push_back
#define mp make_pair

typedef pair<int, int> ii;

vector<int> graph[600];
int child[600], m, root, par[600], ok = 0, arr[600], num = 1;
bool vis1[600], vis2[600];
vector<int> ask;

void dfs(int u, int p){
	arr[num] = u; num++;
    for(int i = 0; i < graph[u].size(); i++){
        int v = graph[u][i];
        if(v == p) continue;
        dfs(v, u);
    }
}

int findEgg(int N, vector<ii> bridges){
	for(int i = 1; i <= N; i++)
		graph[i].clear();
	num = 1;
    for(int i = 0; i < bridges.size(); i++){
        int u = bridges[i].fi, v = bridges[i].se;
        graph[u].pb(v); graph[v].pb(u);
    }
    dfs(1, 1);
    int l = 1, r = N, mid;
    while(l < r){
    	mid = (l + r) / 2;
    	ask.clear();
    	for(int j = 1; j <= mid; j++)
    		ask.pb(arr[j]);
    	if(query(ask)) r = mid;
    	else
    	l = mid + 1;
	}
	return arr[l];
}

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

eastereggs.cpp: In function 'void dfs(int, int)':
eastereggs.cpp:19:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < graph[u].size(); i++){
                    ~~^~~~~~~~~~~~~~~~~
eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:30:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     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...