제출 #861248

#제출 시각아이디문제언어결과실행 시간메모리
861248qwusha어르신 집배원 (BOI14_postmen)C++17
55 / 100
565 ms109656 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define fi first #define se second typedef long double ld; const ll inf = 1e9; const ld eps = 1e-8; vector<multiset<int>> g; vector<vector<int>> ans; vector<bool> used; vector<int> cur; set<int> stcur; vector<int> res; void dfs(int v) { if (stcur.find(v) != stcur.end()) { res.clear(); while(cur.back() != v) { stcur.erase(cur.back()); res.push_back(cur.back()); cur.pop_back(); } stcur.erase(cur.back()); res.push_back(cur.back()); cur.pop_back(); ans.push_back(res); } cur.push_back(v); stcur.insert(v); if(!g[v].empty()) { auto t = g[v].begin(); int u = *t; g[v].erase(t); g[u].erase(g[u].find(v)); dfs(u); } } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, m; cin >> n >> m; used.resize(n); g.resize(n); for (int i = 0; i < m; i++) { int v, u; cin >> v >> u; g[v - 1].insert(u - 1); g[u - 1].insert(v - 1); } for (int i = 0; i < n; i++) { if (!g[i].empty()) dfs(i); } for (auto s : ans) { for (auto el : s) { cout << el + 1 << ' '; } cout << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...