Cod sursa(job #3166903)

Utilizator Alex_DumitrascuAlex Dumitrascu Alex_Dumitrascu Data 9 noiembrie 2023 18:58:32
Problema Mesaj4 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <vector>

using namespace std;

vector <int> g[100005];
vector <pair<int, int>> parcurgere;
bool vizited[100005];

void dfs (int nod)
{
    vizited[nod]=1;
    for (int i=0; i<g[nod].size(); i++) {
        int vecin=g[nod][i];
        if (!vizited[vecin]) {
            parcurgere.push_back({vecin, nod});
            dfs(vecin);
        }
    }
}

int main() {
    int n, m, x, y;
    freopen("mesaj4.in", "r", stdin);
    freopen("mesaj4.out","w", stdout);
    cin>>n>>m;
    for (int i=1; i<=m; i++) {
        cin>>x>>y;
        g[x].push_back(y);
        g[y].push_back(x);
    }
    dfs(1);
    bool conex=true;
    for (int i=1; i<=n; i++) {
        if (!vizited[i]) {
            conex=false;
            break;
        }
    }
    if (conex) {
        cout<<2*(n-1)<<'\n';
        for (int i=parcurgere.size()-1; i>=0; i--)
            cout<<parcurgere[i].first<<' '<<parcurgere[i].second<<'\n';
        for (int i=0; i<parcurgere.size(); i++)
            cout<<parcurgere[i].second<<' '<<parcurgere[i].first<<'\n';
    }
    else  cout<<-1;
    return 0;
}