Pagini recente » Cod sursa (job #2266932) | Cod sursa (job #2875232) | Cod sursa (job #1571192) | Cod sursa (job #1057573) | Cod sursa (job #1623468)
#include <fstream>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
int m, n, nr = 1, t, lst[200000], vf[400000], urm[400000];
bool viz[100000];
void adauga(int x, int y) {
nr++;
vf[nr] = y;
urm[nr] = lst[x];
lst[x] = nr;
}
void citire() {
int temp1, temp2;
for(int i=1;i<=n;i++) {
lst[i] = i;
}
for(int i=1;i<=m;i++) {
in>>temp1>>temp2;
adauga(temp1, temp2);
adauga(temp2, temp1);
}
}
void dfs(int x) {
viz[x] = true;
int p, y;
p = lst[x];
while(p!=0) {
y = vf[p];
if(!viz[y]){
dfs(y);
t++;
}
p = urm[p];
}
}
int main() {
in>>n>>m;
citire();
dfs(1);
out<<t;
in.close();
out.close();
return 0;
}