Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <vector>
- #include <algorithm>
- #define NMAX 101
- using namespace std;
- ifstream fin("dfs.in");
- ofstream fout("dfs.out");
- int n, m, start;
- int x, y;
- vector<int> G[NMAX];
- bool vizitat[NMAX];
- void dfs(int k) {
- // Vizitare nod
- fout << k << ' ';
- vizitat[k] = true;
- // Continuare parcurgere
- int sz = G[k].size();
- for (int i=0;i<sz;++i) {
- int vecin = G[k][i];
- if (vizitat[vecin] == false) { // Ma intereseaza vecinii care n-au fost vizitati
- dfs(vecin);
- }
- }
- }
- int main()
- {
- fin >> n >> m >> start;
- for (int i=1;i<=m;++i) {
- // Citesc muchiile
- fin >> x >> y;
- G[x].push_back(y);
- G[y].push_back(x);
- }
- // Sortez listele de adiacenta ca sa respecte conditia de parcurgere din enunt
- for (int i=1;i<=n;++i) {
- sort(G[i].begin(), G[i].end());
- }
- dfs(start);
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement