Cod sursa(job #1018207)

Utilizator arcansielAlina Bratu arcansiel Data 29 octombrie 2013 01:03:40
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
using namespace std;
#define nmax 100001

struct nod{int x; nod *next;};
nod *lista[nmax];
int n,i,m,a,b,viz[nmax],nr,coada[nmax],k;

void dfs(int start) {
  viz[start]=1;
  coada[k++]=start;
  for (nod *p=lista[start];p!=NULL;p=p->next)
    if (!viz[p->x])
      dfs(p->x);
}

int main() {
  ifstream f("dfs.in",ifstream::in);
  ofstream g("dfs.out",ifstream::out);
  f>>n>>m;
  for (i=0;i<m;i++) {
    f>>a>>b;
    nod *q=new nod;
    q->x=b;
    q->next=lista[a];
    lista[a]=q;
    q=new nod;
    q->x=a;
    q->next=lista[b];
    lista[b]=q;
    }
  for (i=1;i<=n;i++)
    if (!viz[i]) {

      dfs(i);
      }
  g<<nr;
  return 0;
}