Pagini recente » Cod sursa (job #1479427) | Clasament dupa rating | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #482893)
Cod sursa(job #482893)
#include<fstream>
#include<vector>
#define nmax 100005
using namespace std;
vector<int> v[nmax];
int c[nmax], dist[nmax];
int main(){
ifstream f("bfs.in");
ofstream g("bfs.out");
int m, n, s;
f>>n>>m>>s;
int i, j, p, u, x;
for (i = 1; i <= m; i++){
f>>p>>u;
v[p].push_back(u);
}
for (i = 1; i <= n; i++)
dist[i] = -1;
p = u = 1;
c[1] = s;
dist[s] = 0;
while (p <= u){
x = c[p];
p++;
for (i = 0; i < v[x].size(); i++){
if (dist[v[x][i]] == -1){
dist[v[x][i]] = dist[x]+1;
u++;
c[u] = v[x][i];
}
}
}
for (i = 1; i <= n; i++)
g<<dist[i]<<" ";
g<<'\n';
return 0;
}