Submission #128612

#TimeUsernameProblemLanguageResultExecution timeMemory
128612E869120Easter Eggs (info1cup17_eastereggs)C++14
100 / 100
21 ms760 KiB
#include <iostream> #include <vector> #include <algorithm> #include "grader.h" using namespace std; vector<int> X[1 << 12], G; bool used[1 << 12]; int N; void dfs(int pos) { used[pos] = true; G.push_back(pos); for (int i = 0; i < X[pos].size(); i++) { if (used[X[pos][i]] == false) dfs(X[pos][i]); } } int solve(int cr) { cr = min(cr, N); vector<int>vec; for (int i = 0; i < cr; i++) vec.push_back(G[i]); return query(vec); } int findEgg(int NN, vector<pair<int, int>> bridges) { N = NN; for (int i = 0; i < bridges.size(); i++) { X[bridges[i].first].push_back(bridges[i].second); X[bridges[i].second].push_back(bridges[i].first); } dfs(1); int cx = 0, P = 8; if (NN <= 16) P = 3; for (int i = P; i >= 0; i--) { int v = solve(cx + (1 << i)); if (v == 0) cx += (1 << i); } return G[cx]; }

Compilation message (stderr)

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