# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
980549 | rumbin | Senior Postmen (BOI14_postmen) | C++17 | 4 ms | 604 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
vector<set<int>> E;
vector<int> V;
int t = 1;
bool dfs(int u, int p, int s)
{
V[u] = t;
auto i = E[u].begin();
for(auto v : E[u])
{
if(v == p) continue;
if(v == s || (V[v] != t && dfs(v, u, s)))
{
if(E[v].find(u) != E[v].end())
E[v].erase(E[v].find(u));
if(E[u].find(v) != E[u].end())
E[u].erase(E[u].find(v));
cout<<u<<' ';
return true;
}
}
V[u] = 0;
return false;
}
int main()
{
int N,M;
cin>>N>>M;
E.assign(N+1,{});
V.assign(N+1,0);
for(int i=0; i<M; i++)
{
int u,v;
cin>>u>>v;
E[u].insert(v);
E[v].insert(u);
}
for(int i=1; i<=N; i++)
{
if(E[i].size() > 0)
{
dfs(i,0,i);
cout<<endl;
t++;
}
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |