Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream f("BFS.in");
- ofstream g("BFS.out");
- const int DMAX = 100005;
- unsigned int n, m;
- int distanta[DMAX];
- vector <int> muchii[DMAX];
- queue <int> coada;
- void BFS()
- {
- int nod, vecin;
- while (!coada.empty())
- {
- nod=coada.front();
- coada.pop();
- for (int i=0; i<muchii[nod].size(); i++)
- {
- vecin=muchii[nod][i];
- g<<vecin<<' ';
- if (distanta[vecin]==-1)
- {
- coada.push(vecin);
- distanta[vecin]=distanta[nod] + 1;
- }
- }
- }
- }
- void read()
- {
- int x;
- f>>n>>m>>x;
- for (int i=1; i<=m; i++)
- {
- int x, y;
- f>>x>>y;
- muchii[x].push_back(y);
- }
- for (int i = 1; i <= n; i++)
- distanta[i]=-1;
- distanta[x]=0;
- coada.push(x);
- BFS();
- }
- int main()
- {
- read();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment