Cod sursa(job #774556)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 5 august 2012 18:56:34
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<fstream>
using namespace std;
typedef struct celula{
        int nod;
        struct celula *next;
        }*lista;
lista graf[100001];
bool viz[100001];
int solx[200001], soly[200001];
int ok,nr;

void dfs(int nod){
     lista p;
     p=graf[nod]; viz[nod]=true; ++ok;
      for(p=graf[nod];p;p=p->next)
       if(viz[p->nod]==false){
                               dfs(p->nod);
                               solx[++nr]=nod;
                               soly[nr]=p->nod;
                               }
}             

int main(void){
    ifstream fin("mesaj4.in");
    ofstream fout("mesaj4.out");
    int i,n,m,x,y;
    lista v;
    fin>>n>>m;
    for (i=1; i<=m; ++i){
        fin>>x>>y;
        v=new celula; v->nod=y; v->next=graf[x]; graf[x]=v;
        v=new celula; v->nod=x; v->next=graf[y]; graf[y]=v;
        }
     dfs(1);
     if (ok!=n) fout<<"-1";
      else { fout<<2*n-2<<"\n";
           for (i=1; i<n; ++i) fout<<soly[i]<<" "<<solx[i]<<"\n";
           for (i=n-1; i>0; --i) fout<<solx[i]<<" "<<soly[i]<<"\n";
           }
   return(0);
}