Submission #1131253

#TimeUsernameProblemLanguageResultExecution timeMemory
1131253I_FloPPed21Senior Postmen (BOI14_postmen)C++20
38 / 100
1097 ms36804 KiB
#include <bits/stdc++.h>
using namespace std;
const int N=5e5+1;
int n,m;
vector<int>sol[N];
vector<pair<int,int>>adj[N];
void citeste()
{
    cin>>n>>m;
    for(int i=1; i<=m; i++)
    {
        int a,b;
        cin>>a>>b;
        adj[a].push_back({b,i});
        adj[b].push_back({a,i});
    }
}
bool used[N];
int seen[N];
stack<int>path;
int cnt;
bool viz[N];
void dfs(int nod)
{
    viz[nod]=true;

    for(auto [x,y]:adj[nod])
    {
        if(used[y]==true)
            continue;

        used[y]=true;
        dfs(x);
    }
    path.push(nod);
    seen[nod]++;

    if(seen[nod]==2)
    {
        cnt++;
        seen[nod]=1;
        sol[cnt].push_back(nod);
        path.pop();
        while(path.top()!=nod)
        {
            sol[cnt].push_back(path.top());
            seen[path.top()]--;
            path.pop();
        }
    }
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    citeste();
    dfs(1);

    for(int i=1; i<=cnt; i++)
    {
        for(auto u:sol[i])
            cout<<u<<" ";
        cout<<'\n';
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...