Cod sursa(job #3194756)

Utilizator Robert_MitriRobert Mitri Robert_Mitri Data 19 ianuarie 2024 11:11:57
Problema Mesaj4 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <vector>
#include <algorithm>
#define sz 100000
using namespace std;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");

int n,m;

vector <int> v[sz + 5];
vector <pair<int,int> > sol;
bool viz[sz + 5];

int nrc;

void dfs(int nod)
{
    viz[nod]=true;
    for(auto& i : v[nod])
        if(!viz[i]){
            dfs(i);
            sol.push_back({i,nod});
        }
}


int main()
{
    fin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        fin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    for(int i=1;i<=n;i++)
        if(!viz[i])
            nrc++,dfs(i);
    if(nrc!=1)
    {
        fout<<-1;
        return 0;
    }
    fout<<2*n-2<<'\n';
    for(auto& i : sol)
        fout<<i.first<<' '<<i.second<<'\n';
    for(auto it = sol.rbegin();it!=sol.rend();it++)
        fout<<it->second<<' '<<it->first<<'\n';
}