Submission #980767

#TimeUsernameProblemLanguageResultExecution timeMemory
980767fv3Senior Postmen (BOI14_postmen)C++14
0 / 100
12 ms41308 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; vector<int> adj[500000]; int start[500000]; unordered_set<int> c[500000]; vector<int> ep; void euler(int index, int last) { c[last].insert(index); c[index].insert(last); for (int i = start[i]; i < adj[index].size(); i++) { start[i]++; int node = adj[index][i]; if (!c[node].count(index) && !c[index].count(node)) euler(node, index); } ep.push_back(index); } int main() { int N, M; cin >> N >> M; for (int i = 0; i < M; i++) { int a, b; cin >> a >> b; a--; b--; adj[a].push_back(b); adj[b].push_back(a); } euler(0, 0); vector<int> occourence(N, -1); vector<int> linkedList(ep.size(), -1); iota(linkedList.begin(), linkedList.end(), 1); for (int i = 0; i < ep.size(); i++) { int value = ep[i]; if (occourence[value] != -1) { int j = linkedList[occourence[value]]; linkedList[occourence[value]] = i + 1; for (; j < i; j = linkedList[j]) { cout << ep[j] + 1 << ' '; occourence[ep[j]] = -1; } cout << ep[i] + 1 << '\n'; continue; } occourence[value] = i; } return 0; }

Compilation message (stderr)

postmen.cpp: In function 'void euler(int, int)':
postmen.cpp:15:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |  for (int i = start[i]; i < adj[index].size(); i++)
      |                         ~~^~~~~~~~~~~~~~~~~~~
postmen.cpp: In function 'int main()':
postmen.cpp:45:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |  for (int i = 0; i < ep.size(); i++)
      |                  ~~^~~~~~~~~~~
postmen.cpp: In function 'void euler(int, int)':
postmen.cpp:15:11: warning: 'i' is used uninitialized in this function [-Wuninitialized]
   15 |  for (int i = start[i]; i < adj[index].size(); i++)
      |           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...