Cod sursa(job #2557497)

Utilizator CRaresCroicia Rares CRares Data 25 februarie 2020 20:40:30
Problema Mesaj4 Scor 75
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5+5;
bitset<N> viz;
vector<int> v[N];
vector<pair<int,int>> ans;

int k;

void dfs(int x){
    viz[x] = 1;
    for (int i = 0; i<v[x].size(); i++)
    {
        int it = v[x][i];
        if (!viz[it]){
            dfs(it);
            ans.push_back({it,x});
        }
    }
}

int main(){
    freopen("mesaj4.in", "r", stdin);
    freopen("mesaj4.out", "w", stdout);
    int n,m;
    cin >> n >> m;
    for (int i = 1; i<=m; i++)
    {
        int x,y;
        cin >> x >> y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1);
    if (ans.size() != (n-1)){
        cout << -1;
        return 0;
    }

    cout << 2*(n-1) << "\n";

    for (int i = 0; i < ans.size(); i++)
        cout << ans[i].first << " " << ans[i].second << "\n";

    for (int i = ans.size()-1; i >= 0; i--)
        cout << ans[i].second << " " << ans[i].first << "\n";

}