Pagini recente » Cod sursa (job #514716) | Cod sursa (job #1955751) | Cod sursa (job #1878410) | Cod sursa (job #2777668) | Cod sursa (job #2767843)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
char buff[4096];
int pbuf=4095;
void readbuff()
{
pbuf=0;
fin.read(buff,4095);
}
int citire()
{
int nr=0;
if(pbuf==4095)
{
readbuff();
}
while(buff[pbuf]<'0'||buff[pbuf]>'9')
{
pbuf++;
if(pbuf==4095)
{
readbuff();
}
}
while(buff[pbuf]>='0'&&buff[pbuf]<='9')
{
nr=nr*10+buff[pbuf]-'0';
pbuf++;
if(pbuf==4095)
{
readbuff();
}
}
return nr;
}
vector<int>adiacent[100005];
int viz[100005];
void DFS(int x){
for(auto i:adiacent[x]){
if(viz[i]==0){
viz[i]=1;DFS(i);
}
}
}
int main()
{
int n,m,a,b,cnt=0;
n=citire();m=citire();
for(int i=1;i<=m;i++){
a=citire();
b=citire();
adiacent[a].push_back(b);
adiacent[b].push_back(a);
}
for(int i=1;i<=n;i++){
if(viz[i]==0){
viz[i]=1;cnt++;
DFS(i);
}
}
fout<<cnt<<'\n';
return 0;
}