Submission #103585

#TimeUsernameProblemLanguageResultExecution timeMemory
103585luciocfSenior Postmen (BOI14_postmen)C++14
38 / 100
1089 ms36372 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<int> stk; void dfs(int u) { if (mark[u]) { ++qtd; while (true) { int v = stk.top(); stk.pop(); mark[v] = 0; ans[qtd].push_back(v); if (v == u) break; } } for (auto v: grafo[u]) { if (!markEdge[v.second]) { mark[u] = 1; stk.push(u); 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); 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:68:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j = 1; j < ans[i].size(); j++)
                   ~~^~~~~~~~~~~~~~~
postmen.cpp:52: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:57: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...