Nu aveti permisiuni pentru a descarca fisierul grader_test1.ok
Cod sursa(job #3150232)
Utilizator | Data | 15 septembrie 2023 13:51:07 | |
---|---|---|---|
Problema | BFS - Parcurgere in latime | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.81 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
struct graf{
int nr;
vector<int>vec;
int dist=-1;
};
int main(){
int n, m, s, aux1, aux2;
in>>n>>m>>s;
vector<graf>G(n);
for(int i=0; i<m;i++){
in>>aux1>>aux2;
G[aux1-1].vec.push_back(aux2-1);
G[aux1-1].nr++;
}
queue<int>q;
G[s-1].dist=0;
q.push(s-1);
while(!q.empty()){
for(int i=0;i<G[q.front()].nr;i++){
if(G[G[q.front()].vec[i]].dist>G[q.front()].dist+1 || G[G[q.front()].vec[i]].dist==-1){
G[G[q.front()].vec[i]].dist=G[q.front()].dist+1;
q.push(G[q.front()].vec[i]);
}
}
q.pop();
}
for(int i=0; i<n;i++){
out<<G[i].dist<<" ";
}
}