Submission #1203724

#TimeUsernameProblemLanguageResultExecution timeMemory
1203724repmannSenior Postmen (BOI14_postmen)C++20
55 / 100
74 ms69448 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; int N, M; bitset <100001> D, V; stack <ll> VG[100001]; inline void Euler() { int node = 1, temp; stack <int> S, T; S.push(node); while(S.size()) { node = S.top(); while(VG[node].size() && V[VG[node].top() >> 20]) VG[node].pop(); if(VG[node].size()) { V[VG[node].top() >> 20] = true; S.push(VG[node].top() & ((1 << 20) - 1)); VG[node].pop(); continue; } if(D[node]) { while(D[node]) {cout << T.top() << ' '; D[T.top()] = false; T.pop();} cout << '\n'; } T.push(node); D[node] = true; S.pop(); } return; } int main() { ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); cin >> N >> M; int u, v; for(ll i = 1; i <= M; i++) { cin >> u >> v; VG[u].push((i << 20) + v); VG[v].push((i << 20) + u); } Euler(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...