Submission #129749

#TimeUsernameProblemLanguageResultExecution timeMemory
129749SamAndSenior Postmen (BOI14_postmen)C++17
0 / 100
1091 ms18856 KiB
#include <bits/stdc++.h> using namespace std; #define m_p make_pair const int N = 500005; int n, m; vector<int> a[N]; set<pair<int, int> > s; vector<int> v; void dfs(int x) { for (int i = 0; i < a[x].size(); ++i) { int h = a[x][i]; if (s.find(m_p(x, h)) != s.end() || s.find(m_p(h, x)) != s.end()) continue; s.insert(m_p(x, h)); dfs(h); } v.push_back(x); } bool c[N]; int main() { scanf("%d%d", &n, &m); for (int i = 0; i < m; ++i) { int x, y; scanf("%d%d", &x, &y); a[x].push_back(y); a[y].push_back(x); } dfs(1); stack<int> s; for (int i = 0; i < v.size(); ++i) { if (c[v[i]]) { printf("%d ", v[i]); while (s.top() != v[i]) { printf("%d ", s.top()); c[s.top()] = false; s.pop(); } printf("\n"); } else { s.push(v[i]); c[v[i]] = true; } } return 0; }

Compilation message (stderr)

postmen.cpp: In function 'void dfs(int)':
postmen.cpp:13:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < a[x].size(); ++i)
                     ~~^~~~~~~~~~~~~
postmen.cpp: In function 'int main()':
postmen.cpp:37:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < v.size(); ++i)
                     ~~^~~~~~~~~~
postmen.cpp:27:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &m);
     ~~~~~^~~~~~~~~~~~~~~~
postmen.cpp:31:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &x, &y);
         ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...