Submission #465787

#TimeUsernameProblemLanguageResultExecution timeMemory
465787AmirElarbiSenior Postmen (BOI14_postmen)C++14
38 / 100
1088 ms14344 KiB
#include <bits/stdc++.h> #define vi vector<int> #define ve vector #define ll long long #define vf vector<float> #define vll vector<pair<ll,ll>> #define ii pair<int,int> #define vvi vector<vi> #define vii vector<ii> #define gii greater<ii> #define pb push_back #define fi first #define se second #define INF 1e7 #define unsigned u #define eps 1e-18 #define eps1 1e-25 #define optimise ios_base::sync_with_stdio(false);cin.tie(NULL); #define MAX_A 100005 #define V 450 #define re register #define maxi(a,b) ((a) > (b) ? (a) : (b)) using namespace std; vii adj[100005]; bool vis[100005]; bool tv[100005]; int n,m,used; bool dfs(int u, int p, int start){ //cout << u << " " << start << " " << used << endl; tv[u] = 1; for(auto x : adj[u]) { if(x.fi == p) continue; if(vis[x.se]) continue; if(x.fi == start) { vis[x.se] = true; used++; return true; } if(tv[x.fi]) continue; vis[x.se] = true; used++; if(dfs(x.fi,u,start)){ cout << x.fi << " "; return true; } vis[x.se] = 0; used--; } return false; } int main(){ optimise; cin >> n >> m; for (int i = 0; i < m; ++i) { int a,b; cin >> a >>b; adj[a].pb({b,i}); adj[b].pb({a,i}); } int d = 1; while (used != m) { for (int i = d; i <= n; ++i) { if(dfs(i,-1,i)){ cout << i; break; } else d++; } memset(tv, 0, sizeof tv); cout << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...