Submission #1327281

#TimeUsernameProblemLanguageResultExecution timeMemory
1327281jahongirSenior Postmen (BOI14_postmen)C++20
100 / 100
216 ms82708 KiB
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define all(a) a.begin(),a.end()

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef unsigned long long ull;
typedef vector<int> vi;


const int mxn = 5e5+1;
vector<pii> g[mxn];
bool vis[mxn];
int cnt[mxn];
vector<int> path;

void dfs(int u){
    while(!g[u].empty()){
        auto [v,i] = g[u].back();
        g[u].pop_back();
        if(vis[i]) continue;
        vis[i] = true;
        dfs(v);
    }
    path.pb(u);
    cnt[u]++;
    if(cnt[u]==2){
        cout << u << ' '; path.pop_back();
        while(path.back() != u){
            cout << path.back() << ' ';
            cnt[path.back()]--;
            path.pop_back();
        }
        cout << '\n';
        cnt[u]--;
    }
}


void solve(){ 
    int n,m; cin >> n >> m;
    for(int i = 1; i <= m; i++){
        int u,v; cin >> u >> v;
        g[u].pb({v,i}); g[v].pb({u,i});
    }
    dfs(1);

}   



signed main(){
    cin.tie(0)->sync_with_stdio(0);
    int t = 1;
    // cin >> t;
    while(t--){solve();}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...