Submission #980667

#TimeUsernameProblemLanguageResultExecution timeMemory
980667fv3Senior Postmen (BOI14_postmen)C++14
0 / 100
1 ms348 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; vector<queue<int>> adj; vector<unordered_set<int>> c; vector<int> ep; void euler(int index, int last) { c[last].insert(index); while (!adj[index].empty()) { int node = adj[index].front(); adj[index].pop(); if (!c[node].count(index)) euler(node, index); } ep.push_back(index); } int main() { int N, M; cin >> N >> M; adj.resize(N); c.resize(N); for (int i = 0; i < M; i++) { int a, b; cin >> a >> b; a--; b--; adj[a].push(b); adj[b].push(a); } euler(0, 0); reverse(ep.begin(), ep.end()); int g = 0; vector<int> occourence(ep.size(), -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 << '\n'; } else occourence[value] = i; } return 0; }

Compilation message (stderr)

postmen.cpp: In function 'int main()':
postmen.cpp:48:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |  for (int i = 0; i < ep.size(); i++)
      |                  ~~^~~~~~~~~~~
postmen.cpp:43:6: warning: unused variable 'g' [-Wunused-variable]
   43 |  int g = 0;
      |      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...