Cod sursa(job #2440551)

Utilizator CharacterMeCharacter Me CharacterMe Data 18 iulie 2019 17:26:09
Problema Mesaj4 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
int n, m, i, j, v;
vector<int> graph[100001];
pair<int, int> sol[200002];
bitset<100001> check;
void dfs(int node);
int main()
{
    fin>>n>>m;
    for(i=1; i<=m; ++i){
        int x, y;
        fin>>x>>y;
        graph[x].push_back(y);
        graph[y].push_back(x);
    }
    dfs(1);
    for(i=1; i<=n; ++i) if(check[i]==false) {fout<<-1; return 0;}
    fout<<2*n-2<<"\n";
    for(i=1; i<=v; ++i) fout<<sol[i].first<<" "<<sol[i].second<<"\n";
    for(i=v; i>=1; --i) fout<<sol[i].second<<" "<<sol[i].first<<"\n";
    return 0;
}
void dfs(int node){
    check[node]=true;
    for(auto i:graph[node]) if(check[i]==false){
        dfs(i);
        sol[++v]={i, node};
    }
    return;
}