Cod sursa(job #774527)

Utilizator ion824Ion Ureche ion824 Data 5 august 2012 16:40:38
Problema Mesaj4 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream>
using namespace std;
typedef struct lnod{
        int vf;
        struct lnod *next;
        }*Nod;
Nod a[100005];
bool viz[100005];
int N,M,nr,x[100005],y[100005];

void add(int x,int y){
     Nod p=new lnod;
     p->vf=y;
     p->next=a[x];
     a[x]=p;
     }

void readdata(){
    ifstream fin("mesaj4.in");
    int i,x,y;
    fin>>N>>M; 
    for(i=1;i<=M;++i){
      fin>>x>>y;
      add(x,y);
      add(y,x);
      }
     }

void writedata(){
     ofstream fout("mesaj4.out");
     int i;
     for(i=1;i<=N;++i)
       if(!viz[i])
       {
        fout<<"0\n";
        return ;           
       }
     fout<<2*(N-1)<<'\n';
     for(i=nr;i>0;--i)fout<<y[i]<<' '<<x[i]<<'\n';
     for(i=1;i<=nr;++i)fout<<x[i]<<' '<<y[i]<<'\n';
     }
     
void dfs(int nod){
     viz[nod]=1;
     for(Nod p=a[nod];p;p=p->next)
       if(!viz[p->vf])
       {
        x[++nr]=nod; 
        y[nr]=p->vf;
        dfs(p->vf);      
       }          
     }

int main(void){
     readdata();
     dfs(1);
     writedata();   
 return 0;   
}