집합 연산

시간 제한5초메모리 제한2048 MB

요약
서로 다른 정수 N개로 이루어진 집합에서 원소 개수 n을 토글하는 연산을 반복할 때, K_i번 추가 연산 후의 원소 합을 누적해서 답하는 문제입니다.
난이도

어려움10점 중 8점

유형
수학, 시뮬레이션, 구현, 그리디
정답자
아직 제출이 없습니다

문제

00 이상의 정수 NN개를 원소로 갖는 집합 SS가 주어집니다. 여기서 집합이란, 중복되지 않는 원소의 모음을 말합니다. 원소들은 오름차순으로 A_1,A_2,…,A_NA\_1, A\_2, \dots, A\_N입니다.

SS에 다음과 같은 연산을 여러 번 할 수 있습니다.

  • SS의 원소 개수가 nn일 때, SS의 원소로 nn이 있다면 nn을 제거하고, 없다면 nn을 추가합니다.

여러분은 QQ번의 질문에 답해야 합니다. ii번째 질문은 아래와 같습니다.

  • 집합 SS에 연산을 추가적으로 K_iK\_i번 하였을 때, SS의 모든 원소의 합을 출력합니다. 연산은 질문이 진행됨에 따라 누적됨에 유의하십시오.

입력

첫 번째 줄에 SS의 원소의 개수 NN이 주어집니다.

두 번째 줄에 SS의 원소 A_1,A_2,…,A_NA\_1,A\_2,\dots,A\_N이 주어집니다.

세 번째 줄에 질문의 개수 QQ가 주어집니다.

다음 QQ개 줄에 걸쳐 질문이 주어집니다. 그중 ii번째 줄에는 정수 K_iK\_i가 주어집니다.

출력

QQ개의 줄에 걸쳐 각 K_iK\_i마다, 집합 SS를 가지고 K_iK\_i번 작업한 후 SS의 모든 원소의 합을 출력합니다.

제한

  • 1≤N,Q≤100,0001 \le N,Q \le 100\\, 000
  • 0≤A_1\<A_2<…\<A_N≤1,000,000,0000 \le A\_1\<A\_2<\dots \<A\_N\le 1\\, 000\\, 000\\, 000
  • 1≤K_j≤1,000,000,0001 \le K\_j \le 1\\, 000\\, 000\\, 000
  • 모든 K_jK\_j의 합은 1,000,000,0001\\, 000\\, 000\\, 000 이하입니다.

예제2

  1. 예제 1

    입력
    5
    2 4 6 8 10
    5
    1
    1
    1
    1
    1
    
    예상 출력
    35
    29
    24
    20
    23
    
  2. 예제 2

    입력
    1
    10
    1
    10
    
    예상 출력
    45