جشنواره بهارانه راکت! ۳۵% تخفیف ویژه بر روی دوره‌های آموزشی

مشاهده دوره‌ها
ثانیه
دقیقه
ساعت
روز
مبینا
11 ماه پیش توسط مبینا مطرح شد
0 پاسخ

مشکل در حل یکی از سوالات کوئرا

سلام روز همگی بخیر
این سوالیه که توی کوئرا من توی حلش به مشکل خوردم:
 تصویر

 تصویر

که کدی که براش نوشتم این طوریه:


#include

#include <vector>

using namespace std;

struct Node {
  int id;
  vector<int> children;
};

int find_boss(vector<Node>& nodes, int person) {
  for (Node& node : nodes) {
    if (node.id == person) {
      return person;
    }
    for (int child : node.children) {
      if (find_boss(nodes, child) == person) {
        return person;
      }
    }
  }
  return -1;
}

int find_boss_fine(vector<Node>& nodes, int n) {
  int boss = find_boss(nodes, 1);
  int fines = 0;
  for (Node& node : nodes) {
    if (node.id != boss) {
      fines++;
    }
  }
  return fines + 1;
}

int main() {
  int n;
  cin >> n;
  vector<Node> nodes(n);
  for (int i = 0; i < n - 1; i++) {
    int parent;
    cin >> parent;
    nodes[parent - 1].children.push_back(i + 2);
  }
  cout << find_boss_fine(nodes, n) << endl;
} 

اما مشکل داره و جواب نمیده، کسی نظری داره؟ ممنونم از راهنماییتون


ثبت پرسش جدید

به همدیگه کمک کنیم

به مبینا کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام