제출 #1051276

#제출 시각아이디문제언어결과실행 시간메모리
1051276andecaandeci어르신 집배원 (BOI14_postmen)C++17
0 / 100
159 ms262144 KiB
#include <bits/stdc++.h> #define nikah ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define ll long long #define pll pair<ll,ll> #define pb push_back #define fi first #define se second const ll maxn = 5e5+7, modn = 1e9+7; using namespace std; ll n,m,cur=0; vector<pll>adj[maxn]; vector<ll>ans[maxn]; ll par[maxn], cnt[maxn]; bool cek[maxn]; void dfs(ll node) { for (auto [next, idx] : adj[node]) { if (cek[idx]) continue; cek[idx] = 1; cnt[node]--; cnt[next]--; par[next] = node; if (cnt[next] % 2 == 0) { cur++; ans[cur].pb(next); ll bt = node; while (bt != next) { ans[cur].pb(bt); bt = par[bt]; } continue; } dfs(next); } } int main () { cin>>n>>m; for (ll i=1; i<=m; i++) { ll u,v; cin>>u>>v; adj[u].pb({v,i}); adj[v].pb({u,i}); } for (ll i=1; i<=n; i++) { cnt[i] = adj[i].size(); // cout<<i<<" : "<<cnt[i]<<endl; } dfs(1); /* for (ll i=1; i<=n; i++) { cout<<i<<" : "; for (auto [x,y] : adj[i]) { cout<<x<<" "; } cout<<endl; }*/ for (ll i=1; i<=cur; i++) { for (auto x : ans[i]) { cout<<x<<" "; } cout<<endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...