Cod sursa(job #2789990)

Utilizator ElizaTElla Rose ElizaT Data 28 octombrie 2021 12:17:05
Problema Mesaj4 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 1e5;
vector <int> v[NMAX + 5];
bool f[NMAX + 5];
int ans[2 * NMAX + 5],cnt;

void dfs(int node) {
  f[node] = 1;
  for (int i = 0;i < v[node].size();i++) {
    if (!f[v[node][i]]) {
      ans[cnt++] = node;
      ans[cnt++] = v[node][i];
      dfs(v[node][i]);
    }
  }
}
int main()
{
    ifstream fin("mesaj4.in");
    ofstream fout("mesaj4.out");
    int n,m,x,y,ok = 1;
    fin >> n >> m;
    for (int i = 0;i < m;i++) {
      fin >> x >> y;
      v[x].push_back(y);
      v[y].push_back(x);
    }
    dfs(1);
    for (int i = 1;i <= n;i++)
      if (!f[i]) {
        ok = 0;
        break;
      }
    if (ok == 0){
      fout << -1;
      return 0;
    }
    fout << 2 * n - 2 << '\n';
    for (int i = cnt / 2 - 1;i >= 0;i--)
      fout << ans[2 * i + 1] << " " << ans[2 * i] << '\n';
    for (int i = 0;i < cnt / 2;i++)
      fout << ans[2 * i] << " " << ans[2 * i + 1] << '\n';
    return 0;
}