Pagini recente » Istoria paginii runda/rar15 | Cod sursa (job #679725) | Cod sursa (job #2367892) | Cod sursa (job #2353251) | Cod sursa (job #2324204)
#include <stdio.h>
#include <iostream>
#include <fstream>
int n, m, parcurs[999999], nr;
using namespace std;
typedef struct nod
{
int v;
nod *c;
} *noduri;
noduri a[999999];
noduri creareNod(noduri r,int t){
noduri a=new nod;
a->c=r;
a->v=t;
return a;
}
void verificare(int nrNod){
noduri k;
parcurs[nrNod]=1;
k=a[nrNod];
while(k!=NULL){
if(parcurs[k->v]==0){
verificare(k->v);
}
else{
k=k->c;
}
}
}
int main()
{
int n,m,i,x,y;
ifstream f;
ofstream o;
f.open("dfs.in");
o.open("dfs.out");
f>>n>>m;
for (i = 1; i <= m; i++){
f>>x>>y;
a[x]=creareNod(a[x],y);
a[y]=creareNod(a[y],x);
}
for(i=1;i<=n;i++){
if(parcurs[i]==0){
nr++;
verificare(i);
}
}
o<<nr;
f.close();
o.close();
return 0;
}