Pagini recente » Cod sursa (job #575921) | Cod sursa (job #3170265) | Cod sursa (job #3269503) | Cod sursa (job #1424605) | Cod sursa (job #2456260)
#include <iostream>
#include <stdio.h>
#include <vector>
#include <queue>
#include <map>
using namespace std;
FILE *fin, *fout;
int n, m;
int compCount = 1;
typedef pair<int, int> muchie;
vector<muchie> muchii;
map<int, bool> viz;
void CitesteDate()
{
int i;
int x, y;
fscanf(fin, "%d %d", &n, &m);
for(i = 0; i < m; i++)
{
fscanf(fin, "%d %d", &x, &y);
muchii.push_back(make_pair(x, y));
}
}
void DFS(int node)
{
if(!viz[node])
{
viz[node] = true;
for(muchie m : muchii)
{
if(m.first == node)
{
DFS(m.second);
}
}
}
}
void ScrieDate()
{
fprintf(fout, "%d", compCount);
}
int main()
{
fin = fopen("dfs.in", "r");
fout = fopen("dfs.out", "w");
CitesteDate();
for(int index = 1; index < n; index++)
{
if(!viz[index])
{
DFS(index);
compCount++;
}
}
ScrieDate();
fclose(fin);
fclose(fout);
return 0;
}