Submission #894019

#TimeUsernameProblemLanguageResultExecution timeMemory
894019raphaelpEaster Eggs (info1cup17_eastereggs)C++14
100 / 100
17 ms1228 KiB
#include <bits/stdc++.h> #include "grader.h" using namespace std; void dfs(int x, int p, int &targ, vector<int> &taken, vector<int> &occ, vector<vector<int>> &Tab) { targ -= occ[x]; taken.push_back(x + 1); if (targ == 0) return; for (int i = 0; i < Tab[x].size(); i++) { if (targ == 0) break; if (Tab[x][i] == p) continue; dfs(Tab[x][i], x, targ, taken, occ, Tab); } } int findEgg(int N, vector<pair<int, int>> bridges) { vector<int> occ(N, 1); vector<vector<int>> Tab(N); for (int i = 0; i < N - 1; i++) { Tab[bridges[i].first - 1].push_back(bridges[i].second - 1); Tab[bridges[i].second - 1].push_back(bridges[i].first - 1); } int num = N; while (num > 1) { vector<int> taken; int targ = num / 2; dfs(0, 0, targ, taken, occ, Tab); targ = num / 2; int temp = query(taken); if (temp) { num = targ; sort(taken.begin(), taken.end()); int buff = 0; for (int i = 0; i < N; i++) { if (buff < taken.size() && i == taken[buff] - 1) { buff++; continue; } occ[i] = 0; } } else { num -= targ; for (int i = 0; i < taken.size(); i++) { occ[taken[i] - 1] = 0; } } } int ans = 0; for (int i = 0; i < N; i++) { if (occ[i]) ans = i + 1; } return ans; }

Compilation message (stderr)

eastereggs.cpp: In function 'void dfs(int, int, int&, std::vector<int>&, std::vector<int>&, std::vector<std::vector<int> >&)':
eastereggs.cpp:10:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for (int i = 0; i < Tab[x].size(); i++)
      |                     ~~^~~~~~~~~~~~~~~
eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:43:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |                 if (buff < taken.size() && i == taken[buff] - 1)
      |                     ~~~~~^~~~~~~~~~~~~~
eastereggs.cpp:54:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |             for (int i = 0; i < taken.size(); i++)
      |                             ~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...