Pagini recente » Cod sursa (job #3256413) | Cod sursa (job #2791368) | Cod sursa (job #1690647) | Cod sursa (job #2193960) | Cod sursa (job #831963)
Cod sursa(job #831963)
# include <stdio.h>
//# include <conio.h>
# include <vector>
# define N 100005
using namespace std;
vector<int>graph[N];
int visited[N];
int n, m;
void citire () {
FILE *f = fopen ("dfs.in", "r");
int x, y;
fscanf (f, "%i %i", &n, &m);
for (int i = 0; i < m; i++){
fscanf (f, "%i %i", &x, &y);
graph[x].push_back(y);
graph[y].push_back(x);
}
fclose(f);
}
void printGraph() {
for (int i = 1; i < n; i++){
printf("%i: ", i);
for (int j = 0; j < graph[n].size(); j++){
printf("%i ", graph[n].at(j));
}
printf("\n");
}
}
void dfs(int start) {
visited[start] = 1;
for (int i =0; i < graph[start].size(); i++){
if (visited[graph[start].at(i)] == 0)
dfs(graph[start].at(i));
}
}
int main () {
int nr_comp = 0;
FILE *g = fopen ("dfs.out", "w");
citire();
printGraph();
for(int i = 1; i <= n; i++){
if (visited[i] == 0){
nr_comp ++;
dfs(i);
}
}
fprintf(g,"%i",nr_comp);
//getch();
fclose(g);
return 0;
}