Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

BINTREEBD - Binary tree

Napisz program, który będzie realizował drzewo binarne złożone z conajwyżej 20 poziomów. Po wczytaniu wartości wszystkich liści należy odpowiadać na pytania. Pytanie będzie zawierało numer liścia (numerujemy od 1). Jako odpowiedź powinniśmy akutalizować ojców, którzy otrzymują wartość równą sumie wartości synów. Po każdej takiej aktualizacji wypisujemy wartość ojca. Zakładamy, że na początku wszyscy ojcowie mają wartość 0. Zakładamy, że drzewo jest kompletne.

Wejście

W pierwszym wierszu jedna liczba p określająca liczbę poziomów ( 1 < p < 21).

W drugim wierszu wartości w wszystkich liści (0 <= w <= 1000).

W kolejnym wierszu jedna liczba q określająca liczbę zapytań.

Każde zapytanie składa się z jednej liczby z będącą numerem liścia.

Wyjście

Dla każdego zapytania wartości wszystkich ojców począwszy od liścią zakączywszy na korzeniu. Na każdym poziomie drzewa, ojciec przyjmuje sumę wartości swoich synów.

Przykład

Wejście:
3
6 3 9 0 
4
3
4
2
1


Wyjście:
9 9 9 
0 9 9 
3 9 18 
6 9 18 


Dodane przez:Marcin Kasprowicz
Data dodania:2016-04-18
Limit czasu wykonania programu:1s-2s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM32-GCC ASM64 MAWK BC C-CLANG NCSHARP CPP14-CLANG COBOL COFFEE D-CLANG D-DMD ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG R RACKET RUST SCM qobi CHICKEN SQLITE SWIFT UNLAMBDA VB.NET

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.