#include #include #include "tree.h" using namespace std; void helper(tree *&t, int k, int depth, int *sum) { if (!t) return; if (depth == k) *sum += t->inf; if (depth < k) { helper(t->left, k, depth + 1, sum); helper(t->right, k, depth + 1, sum); } } int solve(tree *&t, int k) { int sum = 0; helper(t, k, 0, &sum); return sum; } void create(tree *&t, int n, tree *parent) { if (n > 0) { int x; cin >> x; t = node(x); t->parent = parent; int nl = n / 2; int nr = n - nl - 1; create(t->left, nl, t); create(t->right, nr, t); } } int main() { int n; cout << "Введите количество узлов: "; cin >> n; tree *t = new tree; cout << "Введите содержимое узлов:" << endl; create(t, n, NULL); print(t, log(n) / log(2)); cout << "Введите число k: "; int k; cin >> k; int res = solve(t, k); cout << "Сумма узлов на уровне k равна " << res << endl; return 0; }