Cod sursa(job #2309803)

Utilizator liviu2000Dragomirescu Liviu liviu2000 Data 29 decembrie 2018 20:06:38
Problema Mesaj4 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("mesaj4.in") ;
ofstream fout("mesaj4.out") ;

bitset<100005> bt ;
vector<int> graf[100005] ;
vector<pair<int,int> > sol ;
int n ;

void citire()
{
    int m , i , x , y ;
    fin >> n >> m ;
    for ( i = 1 ; i <= m ; i++ )
    {
        fin >> x >> y ;
        graf[x].push_back(y) ;
        graf[y].push_back(x) ;
    }
}

void dfs(int nod)
{
    bt[nod] = 1 ;
    for ( auto vec : graf[nod] )
        if ( bt[nod] == 0 )
            dfs(vec) , sol.push_back({vec,nod}) ;
}

int main()
{
    citire() ;
    dfs(1) ;
    if ( sol.size() < n-1 )
    {
        fout << "-1" ;
        return 0 ;
    }
    fout << 2*sol.size() << '\n' ;
    for ( auto x : sol )
        fout << x.first << " " << x.second << '\n' ;
    for ( int i = sol.size()-1 ; i >= 0 ; i-- )
        fout << sol[i].second << " " << sol[i].first << '\n' ;
}