만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

곱의 합 쿼리

시간 제한2초메모리 제한512 MB

요약
각 질의 K마다 A의 K개 원소를 고르는 모든 조합의 곱을 더한 값을 100003으로 나눈 나머지를 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 조합론, 수학
정답자
아직 제출이 없습니다

문제

길이가 NN인 수열 AA가 주어진다. 이 수열에 대한 쿼리 QQ개를 처리하는 프로그램을 작성하시오.

각 쿼리는 정수 KK 하나로 이루어진다. 수열 AA에서 원소를 KK개 고르는 방법을 모두 살펴보고, 고른 KK개의 곱을 각각 구한 다음, 그 곱을 전부 더한 값을 100003100003으로 나눈 나머지를 출력한다.

고르는 방법은 위치로 구분한다. 값이 같은 원소가 여러 개 있어도 위치가 다르면 서로 다른 방법이므로, 방법의 수는 항상 이항계수 (NK)\binom{N}{K}와 같다.

입력

첫째 줄에 NN (1≤N≤300001 \le N \le 30000)이 주어진다.

둘째 줄에 수열의 원소 A1,A2,…,ANA_1, A_2, \dots, A_N (1≤Ai≤1000001 \le A_i \le 100000)이 공백으로 구분되어 주어진다.

셋째 줄에 쿼리의 개수 QQ (1≤Q≤N1 \le Q \le N)가 주어진다.

넷째 줄부터 QQ개의 줄에 각 쿼리의 KK (1≤K≤N1 \le K \le N)가 한 줄에 하나씩 주어진다.

출력

각 쿼리의 답을 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.

힌트

A=(2,3,5)A = (2, 3, 5)이고 K=2K = 2이면 고르는 방법은 {2,3}\{2, 3\}, {2,5}\{2, 5\}, {3,5}\{3, 5\} 세 가지다. 곱은 각각 66, 1010, 1515이고 합은 3131이다.

A=(4,4,7)A = (4, 4, 7)이고 K=2K = 2이면 두 44의 값이 같아도 위치가 다르므로 방법은 역시 세 가지다. 곱은 각각 1616, 2828, 2828이고 합은 7272이다.

예제6

  1. 예제 1

    입력
    3
    1 2 3
    2
    1
    2
    
    예상 출력
    6
    11
    
  2. 예제 2

    입력
    3
    1 2 2
    1
    2
    
    예상 출력
    8
    
  3. 예제 3

    입력
    1
    100000
    1
    1
    
    예상 출력
    100000
    
  4. 예제 4

    입력
    5
    2 3 5 7 11
    1
    5
    
    예상 출력
    2310
    
  5. 예제 5

    입력
    4
    5 5 5 5
    4
    1
    2
    3
    4
    
    예상 출력
    20
    150
    500
    625
    
  6. 예제 6

    입력
    6
    16380 42696 3700 39346 33246 70223
    3
    2
    3
    4
    
    예상 출력
    32597
    0
    9826