Submission #535463

#TimeUsernameProblemLanguageResultExecution timeMemory
535463ShelterSenior Postmen (BOI14_postmen)C++14
55 / 100
731 ms184544 KiB
#include <bits/stdc++.h> #define len(x) (int)(x).size() #define range(i, x, y) for(int i=x; i<y; i++) #define sws ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define vint vector<int> #define vll vector<long long> #define vstr vector<string> #define ll long long #define F first #define S second #define pb push_back #define pf push_front #define del(a, n) (a).erase(a.begin()+(n)) #define mp make_pair #define all(a) (a.begin(), a.end()) const int MAX = 1e6; using namespace std; vint sol; unordered_multiset<int> gra[MAX]; void dfs(int node) { while(gra[node].size()) { int v; for(auto x : gra[node]){ v = x; break; } gra[node].erase(v); gra[v].erase(node); dfs(v); } sol.pb(node); } bool vs[MAX]; void decompose() { stack<int> cur; vector<vint> re; for(int u:sol) { if(!vs[u]) { cur.push(u); vs[u] = 1; } else { vint cyc; while(vs[u]) { cyc.pb(cur.top()); vs[cur.top()] = 0; cur.pop(); } for(auto x : cyc){ cout << x << " "; } cout << endl; cur.push(u); vs[u] = 1; } } } int main(){ sws int n, m; cin >> n >> m; for(int i=0; i<m; i++){ int u, v; cin >> u >> v; gra[u].insert(v); gra[v].insert(u); } dfs(1); decompose(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...