VCOLDWAT - Nước lạnh

Tác giả: skyvn97

Ngôn ngữ: C++

#include<cstdio>
#include<queue>
#include<vector>
#define MAX   100100
using namespace std;
vector<int> g[MAX];
int l[MAX];
int c[MAX];
int n;
void loadgraph(void) {
    scanf("%d",&n);
    int i,k,e,b1,b2;
    scanf("%d",&k);
    for (i=1;i<=k;i=i+1) {
        scanf("%d",&e);
        scanf("%d",&b1);
        scanf("%d",&b2);
        g[e].push_back(b1);
        g[e].push_back(b2);
        g[b1].push_back(e);
        g[b2].push_back(e);
    }
    for (i=2;i<=n;i=i+1) c[i]=0;
}
void BFS(void) {
    int i,x;
    queue<int> q;
    q.push(1);
    c[1]=1;
    l[1]=1;
    while (!q.empty()) {
        x=q.front();q.pop();
        for (i=0;i<g[x].size();i=i+1)
            if (c[g[x][i]]==0) {
                c[g[x][i]]=1;
                l[g[x][i]]=l[x]+1;
                q.push(g[x][i]);
            }
    }
}
void process(void) {
    int i;
    for (i=1;i<=n;i=i+1) printf("%d\n",l[i]);
}
int main(void) {
    loadgraph();
    BFS();
    process();
    return 0;
}

Download