2013年8月3日

UVa 10959 - The Party, Part I

#include <cstdio>
#include <queue>
#include <vector>
using namespace std;

int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    int P, D;
    scanf("%d%d", &P, &D);
    vector<int> con[1000];
    int G[1000] = {};
    while (D--) {
      int a, b;
      scanf("%d%d", &a, &b);
      con[a].push_back(b);
      con[b].push_back(a);
    }
    queue<int> q;
    q.push(0);
    while (!q.empty()) {
      int now = q.front();
      int g = G[now];
      q.pop();
      for (int i = 0; i < con[now].size(); i++) {
        if (con[now][i] && !G[con[now][i]]) {
          G[con[now][i]] = g + 1;
          q.push(con[now][i]);
        }
      }
    }
    for (int i = 1; i < P; i++) {
      printf("%d\n", G[i]);
    }
    if (T) {
      puts("");
    }
  }
  return 0;
}

沒有留言:

張貼留言