아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

막대 만들기

시간 제한1초메모리 제한1024 MB

요약
각 목표 길이 L_i를 시작값 A_j와 2 이상의 배수 k로 이루어진 순서 있는 곱셈 분해로 나타내는 방법의 수를 센다.
난이도

보통10점 중 6점

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

문제

길고 얇은 막대를 만드는 과정은 다음과 같습니다.

  • 기본으로 사용할 막대를 고릅니다. 사용 가능한 막대의 길이는 A_1,⋯ ,A_NA\_1, \cdots, A\_N입니다.
  • 원하는 길이가 될 때까지 00번 이상 막대를 늘립니다. 기계에 22 이상의 양의 정수 kk를 설정해서 막대를 넣으면, 길이가 xx였던 막대가 길이 kxkx의 막대가 됩니다.

주어진 QQ개의 길이 각각에 대해 길이가 L_iL\_i인 막대를 만드는 방법의 수를 출력하세요. 두 방법이 서로 다르다는 것은 처음 선택한 막대가 다르거나, 막대를 늘리는 과정에서 입력한 정수 kk의 수열이 서로 다르다는 것을 의미합니다.

입력

첫 줄에 막대의 개수 NN이 주어집니다. (1≤N≤100,000)(1 \le N \le 100\\,000)

둘째 줄에 NN개의 서로 다른 정수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어집니다. (1≤A_i≤100,000)(1 \le A\_i \le 100\\,000)

셋째 줄에 만들고자 하는 막대 길이의 개수 QQ가 주어집니다. (1≤Q≤100,000)(1 \le Q \le 100\\,000)

넷째 줄에 QQ개의 정수 L_1,⋯ ,L_QL\_1, \cdots, L\_Q가 공백으로 구분되어 주어집니다. (1≤L_i≤100,000)(1 \le L\_i \le 100\\,000)

출력

첫 줄에 QQ개의 수를 공백으로 구분해 출력합니다. ii번째 수는 길이가 L_iL\_i인 막대를 만드는 방법의 수입니다. 가능한 모든 입력에 대해 답이 10910^9을 넘지 않음을 증명할 수 있습니다.

예제1

  1. 예제 1

    입력
    5
    1 2 3 4 5
    6
    1 2 3 4 5 6
    
    예상 출력
    1 2 2 4 2 5