Cod sursa(job #2112101)

Utilizator infomaxInfomax infomax Data 23 ianuarie 2018 00:06:03
Problema Mesaj4 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

#define f first
#define s second

using namespace std;

ifstream F("mesaj4.in");
ofstream G("mesaj4.out");

int n, m, x, y, ans;
bitset<100005> v;
vector<int> a[100005];
pair<int, int> sol[2000005];

void dfs(int x)
{
    v[x] = 1;
    vector<int> :: iterator it;
    for(it = a[x].begin(); it != a[x].end(); ++ it)
        if(!v[*it]) sol[++ans]={x, *it}, dfs(*it);
}

int main()
{
    F >> n >> m;
    for(int i = 1; i <= m; ++ i)
    {
        F >> x >> y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    dfs(1);
    for(int i = 1; i <= n; ++ i)
        if(!v[i])
        {
            G << -1;
            return 0;
        }
    G << ans*2<<'\n';
    for( int i = 1; i <= ans; ++ i ) G << sol[i].f << " " << sol[i].s << '\n';
    for( int i = ans; i > 0; -- i ) G << sol[i].s << " " << sol[i].f << '\n';
    return 0;
}