记录编号 605992 评测结果 AAAAAAAAAAAAAAAAAA
题目名称 4176.[USACO25 Feb Silver]Vocabulary Quiz 最终得分 100
用户昵称 GravatarLikableP 是否通过 通过
代码语言 C++ 运行时间 13.785 s
提交时间 2025-09-13 16:44:08 内存使用 47.66 MiB
显示代码纯文本
#include <iostream>
#include <vector>
using namespace std;

const int MAXN = 1e6 + 10;

int N;
int fa[MAXN], siz[MAXN], depth[MAXN];
vector<int> g[MAXN];

void dfs(int u) {
  for (auto v : g[u]) {
    depth[v] = depth[u] + 1;
    siz[u]++;
    dfs(v);
  }
}

int main() {
  freopen("Vocabulary.in", "r", stdin);
  freopen("Vocabulary.out", "w", stdout);
  cin >> N;
  for (int i = 1; i <= N; ++i) {
    cin >> fa[i];
    g[fa[i]].push_back(i);
  }

  dfs(0);

  fa[0] = -1;
  for (int w; cin >> w;) {
    while (w != -1) {
      if (siz[w] > 1) break;
      w = fa[w];
    }
    if (w == -1) {
      cout << 0 << endl;
    } else {
      cout << depth[w] + 1 << endl;
      siz[w]--;
    }
  }
  return 0;
}