একটি n-ary ট্রি এবং একটি সংখ্যা n দেওয়া আছে। ট্রিতে n থেকে বড় মানয়ুক্ত নোডের সংখ্যা বের করতে হবে।
উদাহরণ: tree=[[4],[1,2],[3,5]], n=2 হলে আউটপুট ৩।
অ্যালগরিদম
- Node স্ট্রাক্ট: data, vector<Node*> child
- getGreaterElementsCount(root, n):
- যদি root==NULL, ০ রিটার্ন
- count=০; যদি root->data > n হয় count++
- প্রতিটি চাইল্ডের জন্য রিকার্সিভ কল করে count যোগ করুন
- count রিটার্ন করুন
ইমপ্লিমেন্টেশন
#include <bits/stdc++.h> using namespace std; struct Node { int data; vector<Node*> child; }; Node* getNewNode(int data) { Node* temp = new Node; temp->data = data; return temp; } int getGreaterElementsCount(Node* root, int n) { if (root == NULL) return 0; int count = 0; if (root->data > n) count++; for (Node* child : root->child) count += getGreaterElementsCount(child, n); return count; } int main() { Node* root = getNewNode(1); root->child.push_back(getNewNode(2)); root->child.push_back(getNewNode(3)); root->child.push_back(getNewNode(4)); root->child[0]->child.push_back(getNewNode(5)); root->child[0]->child.push_back(getNewNode(5)); root->child[1]->child.push_back(getNewNode(6)); root->child[1]->child.push_back(getNewNode(6)); root->child[1]->child.push_back(getNewNode(7)); root->child[2]->child.push_back(getNewNode(8)); root->child[2]->child.push_back(getNewNode(8)); root->child[2]->child.push_back(getNewNode(9)); int n = 2; cout << getGreaterElementsCount(root, n) << endl; return 0; }আউটপুট
10