Pagini recente » Cod sursa (job #3186163) | Cod sursa (job #2952761) | Cod sursa (job #2457538) | Cod sursa (job #311725) | Cod sursa (job #3287003)
#include <bits/stdc++.h>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
int n,m,x,v[1000001];
vector<int> G[1000001];
void bfs(int x) {
queue<int> q;
q.push(x);
v[x]=1;
while(!q.empty()) {
int nod = q.front();
q.pop();
out<<nod<<' ';
for(int vecin : G[nod]) {
if(!v[vecin]) {
q.push(vecin);
v[vecin]=1;
}
}
}
}
int main() {
int a,b;
set<pair<int, int>> edges;
in>>n>>m>>x;
for(int i=0;i<m;i++) {
in>>a>>b;
pair<int, int> edge = {a, b};
if (edges.find(edge) == edges.end()) {
edges.insert(edge);
G[a].push_back(b);
}
}
for (int i = 1; i <= n; i++) {
sort(G[i].begin(), G[i].end());
}
bfs(x);
return 0;
}