Workspace Người dùng quangdnm

Từ

Giới thiệu

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+5;
int n, m, c, b, d[N];
vector<int> adj[N];
bool visited[N];
void bfs(int start){
    queue<int> qu;
    qu.push(start);
    for(int i=1;i<=n;i++){
      d[i]=-1;
    }
    d[start] = 0;
    visited[start] = true;
    while (!qu.empty()) {
        int u = qu.front(); 
        qu.pop();
        for (int v : adj[u]) {
            if(!visited[v]){
              visited[v]=true;
              d[v] = d[u]+1;
              qu.push(v);
            }
        }
    }
}
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m >> c;
    vector<int>p(c);
    while(m--){
        int u, v; cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    for(int i=0;i<c;i++){
      cin>>p[i];
    }
    cin>>b;
    bfs(b);
    for (auto x:p) {
      cout<<d[x]<<' ';
    }
    return 0;
}

Lịch sử xếp hạng