Submission #980658

#TimeUsernameProblemLanguageResultExecution timeMemory
980658ZicrusSenior Postmen (BOI14_postmen)C++17
55 / 100
123 ms262144 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll n, m, u, v; vector<queue<pair<ll, ll>>> adj; vector<ll> res; vector<bool> sus; void euler(ll s) { while (!adj[s].empty()) { ll e = adj[s].front().first; ll i = adj[s].front().second; adj[s].pop(); if (!sus[i]) { sus[i] = true; euler(e); } sus[i] = true; } res.push_back(s); } int main() { cin >> n >> m; adj.resize(n); sus.resize(m); vector<ll> deg(n); ll g = 0; for (ll i = 0; i < m; i++) { cin >> u >> v; adj[u-1].push({v-1, g}); adj[v-1].push({u-1, g++}); } euler(0); reverse(res.begin(), res.end()); vector<ll> vst(n, -1); vector<ll> nxt(n, -1); for (ll i = 0; i < res.size(); i++) { ll node = res[i]; if (vst[node] == -1) { vst[node] = i; nxt[node] = res[i+1]; } else { ll nd = res[vst[node]]; do { cout << nd+1 << ' '; vst[nd] = -1; nd = nxt[nd]; } while (nd != node); cout << '\n'; nxt[node] = res[i+1]; vst[node] = i; } } }

Compilation message (stderr)

postmen.cpp: In function 'int main()':
postmen.cpp:39:22: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |     for (ll i = 0; i < res.size(); i++) {
      |                    ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...