Pagini recente » Cod sursa (job #1428089) | Cod sursa (job #1491043) | Cod sursa (job #837545) | Cod sursa (job #1304567) | Cod sursa (job #1733056)
//var II 100p liste de adiacenta dinamica
#include <fstream>
#include <vector>
#define N 100003
using namespace std;
ifstream fi("dfs.in");
ofstream fo("dfs.out");
vector <int> A[N];
int n,m,x,y,viz[N],i,j;
int DF(int x){
int i;
viz[x]=1;
for(i=0;i<A[x].size();i++)
if(viz[A[x][i]]==0)DF(A[x][i]);
}
int main()
{
fi>>n>>m;
for(i=1;i<=m;i++)
{
fi >> x >> y;
A[x].push_back(y);A[y].push_back(x);
}
int k=0;
for(i=1;i<=n;i++)
if(viz[i]==0){
DF(i);
k++;
}
fo<<k<<'\n';
// for(i=1;i<=n;i++)//afis liste de adiacenta
// { fo<<i<<"->";
// for(j=0;j<A[i].size();j++) fo<<A[i][j]<<" ";
// fo<<endl;
// }
return 0;
}
////50p matrice de adiacenta (bitset)degeaba +un test timp depasit
//#include <fstream>
//#include <bitset>
//using namespace std;
//ifstream fi("dfs.in");
//ofstream fo("dfs.out");
//bitset <10000> a[10000];
//int n,m,x,y,viz[4000],i;
//int DF(int x){
//int i;
//viz[x]=1;
//for(i=1;i<=n;i++)
// if(a[x][i]==1 and viz[i]==0)DF(i);
//}
//int main()
//{
// fi>>n>>m;
// for(i=1;i<=m;i++)
// {
// fi >> x >> y;
// a[x][y]=1; a[y][x]=1;
// }
// int k=0;
// for(i=1;i<=n;i++)
// if(viz[i]==0){
// DF(i);
// k++;
// }
// fo<<k<<'\n';
// return 0;
//}
////50p cu matrice de adiacenta (prea mica)
//#include <fstream>
//using namespace std;
//ifstream fi("dfs.in");
//ofstream fo("dfs.out");
//bool a[4000][4000];
//int n,m,x,y,viz[4000],i;
//int DF(int x){
//int i;
//viz[x]=1;
//for(i=1;i<=n;i++)
// if(a[x][i]==1 and viz[i]==0)DF(i);
//}
//int main()
//{
// fi>>n>>m;
// for(i=1;i<=m;i++)
// {
// fi >> x >> y;
// a[x][y]=1; a[y][x]=1;
// }
// int k=0;
// for(i=1;i<=n;i++)
// if(viz[i]==0){
// DF(i);
// k++;
// }
// fo<<k<<'\n';
// return 0;
//}