제출 #466192

#제출 시각아이디문제언어결과실행 시간메모리
466192AmirElarbi어르신 집배원 (BOI14_postmen)C++14
0 / 100
1092 ms332 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[2005]; bool vis[100005]; int tv[2005]; int n,m,used; bool dfs(int u, int p){ //cout << u << " " << used << endl; tv[u] = 1; for(auto x : adj[u]) { if(x.fi == p) continue; if(vis[x.se]) continue; //cout << tv[x.fi] << endl; if(tv[x.fi]){ vis[x.se] = true; used++; tv[x.fi] = 2; tv[u] = 0; cout << u << " "; return true; } vis[x.se] = true; used++; if(dfs(x.fi,u)){ cout << u << " "; //cout << tv[u] << endl; if(tv[u] == 2){ tv[u] = 0; cout << endl; vis[x.se] = 0; used--; //cout << x.se << endl; continue; } 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 = 1; i <= n; ++i) { memset(tv, 0, sizeof tv); if(dfs(i,-1)){ break; } else d++; } //cout << tv[1] << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...