시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 (언어별 추가 시간 없음) 512 MB 101 41 31 91.176%

문제

💸 DJ욱제는 디제잉으로 큰 돈을 벌어서 FLEX 하고 있다. 💸

DJ욱제는 오늘 파티에서 FLEX 하려고 한다. DJ욱제는 각 Wi개의 지폐가 들어 있는 N개의 금고를 포화 이진 트리(노드가 2k-1개인 이진 트리, k는 1 이상의 자연수) 형태로 연결했다. 가장 위에 있는 꼭대기 금고의 번호는 1이고, N번 금고의 좌우 자식 금고 번호는 각 2×N, 2×N+1이다. DJ욱제는 이 트리를 가지고 놀다가, 가장 많은 지폐가 들어 있는 금고를 털어서 FLEX 할 작정이다.

DJ욱제Q번의 놀이를 할 것이다. 매 놀이마다, 한 금고에 들어 있는 지폐 개수를 임의로 바꾸고 아래와 같이 행동한다.

  1. 임의의 금고(지폐 개수를 바꾼 금고가 아니어도 됨)를 하나 선택해서, 그 금고를 루트 금고로 잡는다.
  2. 1에서 선택한 루트 금고를 맨 위로 끌어 올리고, 나머지 금고들의 높이를 다시 맞춰서 루트 금고와의 거리가 같은 금고들이 같은 높이에 위치하도록 한다. 이때, 금고끼리의 연결은 끊어지거나 변하지 않는다.
  3. 모든 금고의 문을 동시에 연다. 금고에 들어 있던 지폐들은 연결된 자식 금고들 중 어딘가로 떨어진다. 더 이상 떨어질 곳이 없다면, 그 금고에 쌓인다.
  4. 지폐가 가장 많이 쌓인 금고를 확인하고, 그 금고의 지폐 개수를 센다.
  5. 1번 과정을 실행하기 전으로 트리를 복원한다. 놀이에서 바꾼 지폐 개수는 그 다음 놀이에서도 계속 유지된다.

DJ욱제는 최대한 많은 돈을 FLEX 하고 싶지만, 똑같은 금고를 루트로 삼더라도 지폐가 어디로 어떻게 떨어지느냐에 따라서 금고에 쌓이는 지폐의 양이 달라질 수 있다. 그래서 DJ욱제는 온 우주의 힘을 믿고 간절히 기도하기로 했다.

DJ욱제와 함께, Q+1번에 걸쳐, 루트 금고를 잘 고르고 지폐들이 최적으로 잘 떨어졌을 때, 지폐가 가장 많이 쌓이는 금고에는 얼마만큼의 지폐가 쌓이게 되는지 알아보자!

입력

첫째 줄에 금고의 개수 N이 주어진다. 양의 정수 k에 대해, N = 2k-1이 항상 성립한다.

둘째 줄에 금고에 들어 있는 지폐의 개수 Wi가 1번 금고부터 순서대로 주어진다.

셋째 줄에 놀이의 횟수 Q가 주어진다.

이후 Q개의 줄에 걸쳐 iDi가 주어진다. 이는 i번 금고의 지폐 개수를 Di로 변경한다는 의미이다.

출력

첫째 줄에 최초의 트리에서 하나의 금고에 쌓을 수 있는 지폐의 최대 개수를 출력한다.

이후 Q개의 줄에 걸쳐, i번째 놀이에서 하나의 금고에 쌓을 수 있는 지폐의 최대 개수를 출력한다.

제한

  • 1 ≤ N ≤ 262,143
  • 0 ≤ Wi ≤ 100,000,000
  • 0 ≤ Q ≤ 100,000
  • 1 ≤ i ≤ N
  • 0 ≤ Di ≤ 100,000,000

서브태스크 1 (5점)

이 서브태스크는 다음의 조건을 만족한다.

  • N = 1 or 3
  • 0 ≤ Wi ≤ 1,000
  • Q = 0

서브태스크 2 (34점)

이 서브태스크는 다음의 조건을 만족한다.

  • 1 ≤ N ≤ 4,095
  • 0 ≤ Wi ≤ 1,000
  • Q = 0

서브태스크 3 (26점)

이 서브태스크는 다음의 조건을 만족한다.

  • Q = 0

서브태스크 4 (35점)

이 서브태스크는 추가 제한 조건이 없다.

예제 입력 1

3
1 10 100
0

예제 출력 1

111

서브태스크 1에 대한 예제이다.

예제 입력 2

7
2 7 5 7 8 9 5
0

예제 출력 2

31

서브태스크 2, 3에 대한 예제이다.

예제 입력 3

7
2 7 5 7 8 9 5
4
7 8
7 10
2 0
5 0

예제 출력 3

31
31
32
25
24

서브태스크 4에 대한 예제이다.

채점

  • 예제는 채점하지 않는다.