Submission #410440

#TimeUsernameProblemLanguageResultExecution timeMemory
410440nichkeEaster Eggs (info1cup17_eastereggs)C++14
26.40 / 100
14 ms13000 KiB
#include <bits/stdc++.h> using namespace std; vector<int> adj[513]; vector<int> euler; set<int> pref[513]; vector<int> vi; bool query(vector < int > v); void dfs(int v, int p) { euler.push_back(v); for (int u : adj[v]) { if (u == p) continue; dfs(u, v); euler.push_back(v); } } int findEgg(int N, vector< pair <int, int> > bridges) { for (int i = 0; i < 513; i++) { adj[i].clear(); } int root = 1; for (auto it : bridges) { root = it.first; adj[it.first].push_back(it.second); adj[it.second].push_back(it.first); } dfs(root, root); pref[0].insert(euler[0]); for (int i = 1; i < euler.size(); i++) { pref[i] = pref[i - 1]; pref[i].insert(euler[i]); } int l = 0, r = euler.size() - 1; int flag = -1; while (l <= r) { vi.clear(); int m = (l + r) / 2; for (int i : pref[m]) { vi.push_back(i); } int k = query(vi); if (k) { flag = m; r = m - 1; } else { l = m + 1; } } if (flag) { for (int i : pref[flag - 1]) { pref[flag].erase(i); } } for (int i : pref[flag]) { return i; } }

Compilation message (stderr)

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:33:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |  for (int i = 1; i < euler.size(); i++) {
      |                  ~~^~~~~~~~~~~~~~
eastereggs.cpp:61:1: warning: control reaches end of non-void function [-Wreturn-type]
   61 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...