Pagini recente » Borderou de evaluare (job #770730) | Cod sursa (job #613092)
Cod sursa(job #613092)
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<fstream>
#include<queue>
using namespace std
int main()
{
int a, b, n, m, s;
ifstream f ("bfs.in");
f >> n >> m >> s;
s--;
vector<vector<int> > graf(n);
for (int i = 0; i < m; i++)
{
f >> --a >> --b;
graf[a].pushback(b);
}
f.close();
queue<int> coada;
coada.push(s);
int cost = 0;
vector<int> sol(n);
vector<int> vizitat(n);
sol[s] = 0;
vizitat[s] = 1;
while (! coada.empty())
{
int nod = coada.front();
coada.pop();
int dim = graf[nod].size();
for (int i = 0; i < dim; i++)
{
if (!vizitat[graf[nod][i]])
coada.push(graf[nod][i]);
vizitat[graf[nod][i]] = 1;
sol[graf[nod][i]] = sol[nod] + 1;
}
}
ofstream f ("bfs.out");
for (int i = 0; i < n; i++)
{
f << sol[i];
}
f.close();
return 0;
}