Pagini recente » Cod sursa (job #2967781) | Cod sursa (job #1435086) | Cod sursa (job #448905) | Cod sursa (job #2804707) | Cod sursa (job #2924654)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
void parcurgere(int nod, vector<vector<int>> la, vector<int> &viz);
int main(){
ifstream f("dfs.in");
int n=0, m=0, x=0, y=0;
f>>n>>m; //nr de noduri, respectiv de muchii
vector<int> adiacente;
vector<vector<int>> la (n, adiacente);
while(f>>x>>y){
//citirea muchiilor
la[x-1].push_back(y-1);
}
//vector vizita noduri
vector<int> viz(n, 0);
int comp=0;
for(int i=0; i<n; i++){
if(!viz[i]){
comp++;
viz[i]=1;
parcurgere(i, la, viz);
}
}
ofstream g("dfs.out");
g<<comp;
return 0;
}
void parcurgere(int nod, vector<vector<int>> la, vector<int> &viz){
for(int i=0; i<la[nod].size(); i++){
viz[la[nod][i]]=1;
parcurgere(la[nod][i], la, viz);
}
}