제출 #1074957

#제출 시각아이디문제언어결과실행 시간메모리
1074957Osplei어르신 집배원 (BOI14_postmen)C++17
0 / 100
49 ms14676 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; typedef int ll; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<ii> vii; typedef vector<vii> wgraf; typedef pair<int,ii> edge; typedef vector <ll> vl; typedef pair <ll, ll> LL; typedef vector <LL> vll; #define UNVISITED 0 #define VISITED 1 #define pb push_back #define F first #define S second ll n, m, u, v, visto[500005]; vll grafo[500005]; bool vale = false, puede[500005]; void dfs(ll origen, ll nodo, ll padre, ll aux) { if (nodo == origen && padre != -1) { vale = true; return; } for (auto i : grafo[nodo]) { if (i.F != padre && puede[i.S] == true && visto[i.F] != aux) { puede[i.S] = false; visto[i.F] = aux; dfs(origen, i.F, nodo, aux); if (vale == true) { cout << nodo << " "; return; } puede[i.S] = true; } } } void SOLVE(){ cin >> n >> m; for (ll i = 0; i < n; i++) visto[i] = 0; for (ll i = 0; i < m; i++){ cin >> u >> v; grafo[u].pb({v, i}); grafo[v].pb({u, i}); puede[i] = true; } ll cnt = 0; for (ll i = 1; i <= n; i++) { vale = false; cnt++; dfs(i, i, -1, cnt); if (vale == true) cout << "\n"; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); 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...