Cod sursa(job #1235653)

Utilizator pulseOvidiu Giorgi pulse Data 30 septembrie 2014 09:15:56
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int MAXN = 100005;
int N, M, A[MAXN], B[MAXN], cnt;
vector <int> G[MAXN];
bool Used[MAXN];

void DFS(int node)
{
    Used[node] = 1;
    for (vector <int> :: iterator it = G[node].begin(); it != G[node].end(); ++it)
    {
        int vecin = *it;
        if (!Used[vecin])
        {
            ++cnt;
            A[cnt] = node;
            B[cnt] = vecin;
            DFS(vecin);
        }
    }
}

int main()
{
    fin >> N >> M;
    for (int i = 1; i <= M; ++i)
    {
        int a, b;
        fin >> a >> b;
        G[a].push_back(b);
        G[b].push_back(a);
    }
    DFS(1);
    if (cnt + 1 != N)
    {
        fout << -1 << '\n';
        return 0;
    }
    fout << 2 * cnt << '\n';
    for (int i = cnt; i >= 1; --i)
        fout << B[i] << " " << A[i] << '\n';
    for (int i = 1; i <= cnt; ++i)
        fout << A[i] << " " << B[i] << '\n';
    fin.close();
    fout.close();
    return 0;
}