제출 #465760

#제출 시각아이디문제언어결과실행 시간메모리
465760AmirElarbi어르신 집배원 (BOI14_postmen)C++14
38 / 100
105 ms12672 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[10005]; bool vis[100005]; bool tv[10005]; 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++; if(used == m) return true; for (int i = 1; i <= n; ++i) { //cout << i << endl; memset(tv, 0, sizeof tv); if(dfs(i,-1,i)){ cout << i << endl; return true; } } vis[x.se] = 0; used--; return false; } 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--; } tv[u] = 1; 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}); } for (int i = 1; i <= n; ++i) { used = 0; if(dfs(i,-1,i)){ cout << i; return 0; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...