Submission #103583

#TimeUsernameProblemLanguageResultExecution timeMemory
103583luciocfSenior Postmen (BOI14_postmen)C++14
0 / 100
60 ms48120 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 5e5+10; typedef pair<int, int> pii; int qtd; bool markEdge[maxn], mark[maxn]; vector<pii> grafo[maxn]; vector<int> ans[maxn]; stack<pii> stk; void dfs(int u) { if (mark[u]) { ++qtd; ans[qtd].push_back(u); while (true) { int v = stk.top().first; stk.pop(); mark[v] = 0; if (v == u) break; ans[qtd].push_back(v); } } mark[u] = 1; for (auto v: grafo[u]) { if (!markEdge[v.second]) { stk.push({u, v.first}); markEdge[v.second] = 1; dfs(v.first); } } } int main(void) { int n, m; scanf("%d %d", &n, &m); for (int i = 1; i <= m; i++) { int u, v; scanf("%d %d", &u, &v); grafo[u].push_back({v, i}); grafo[v].push_back({u, i}); } dfs(1); ++qtd; while (stk.size() > 0) { int v = stk.top().first; stk.pop(); ans[qtd].push_back(v); } for (int i = 1; i <= qtd; i++) { printf("%d", ans[i][0]); for (int j = 1; j < ans[i].size(); j++) printf(" %d", ans[i][j]); printf("\n"); } }

Compilation message (stderr)

postmen.cpp: In function 'int main()':
postmen.cpp:79:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j = 1; j < ans[i].size(); j++)
                   ~~^~~~~~~~~~~~~~~
postmen.cpp:54:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &m);
  ~~~~~^~~~~~~~~~~~~~~~~
postmen.cpp:59:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &u, &v);
   ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...