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

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

가우스

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

요약
약수 축소 비용을 내고 수를 줄이거나 행운 수에 머물며 A에서 B까지 정확히 정해진 이동 횟수로 도달하는 최소 비용을 구합니다.
난이도

어려움10점 중 9점

유형
동적 계획법, 최단 경로, 정수론, 그래프
정답자
아직 제출이 없습니다

문제

어린 카를 프리드리히 가우스가 수업 시간에 가만히 있지 않자, 선생님은 그를 붙잡아 둘 과제를 하나 만들었다.

선생님은 양의 정수 수열 F(1),F(2),…,F(K)F(1), F(2), \ldots, F(K)를 정하고, t>Kt > K인 모든 tt에 대해 F(t)=0F(t) = 0으로 둔다. 행운의 수 집합도 함께 정한다. XX가 행운의 수이면 그 가격을 C(X)C(X)로 쓴다.

처음에 칠판에는 양의 정수 AA가 적혀 있다. 가우스는 한 번의 이동마다 다음 둘 중 하나를 한다.

  • 칠판에 적힌 수가 NN일 때, NN의 약수 중 NN보다 작은 MM을 골라 NN을 지우고 MM을 적는다. 이 이동의 가격은 F(d(N/M))F(d(N/M))이다. 여기서 d(x)d(x)는 xx 자신을 포함한 xx의 약수 개수다.
  • 칠판에 적힌 수 NN이 행운의 수이면 NN을 그대로 둔다. 이 이동의 가격은 C(N)C(N)이다.

가우스는 정확히 LL번 이동해야 하고, 마지막 이동을 마친 뒤 칠판에는 BB가 적혀 있어야 한다. 이렇게 이동하는 방법의 최소 가격을 G(A,B,L)G(A, B, L)이라 하자. 정확히 LL번 이동해서는 조건을 만족할 수 없으면 G(A,B,L)=−1G(A, B, L) = -1로 정의한다.

선생님은 가우스에게 질의를 QQ개 준다. 각 질의는 수 AA와 BB를 주며, 그 답은 G(A,B,L1)+G(A,B,L2)+⋯+G(A,B,LM)G(A, B, L_1) + G(A, B, L_2) + \cdots + G(A, B, L_M)이다. 수 L1,…,LML_1, \ldots, L_M은 모든 질의에서 같다.

입력

첫째 줄에 정수 KK가 주어진다 (1≤K≤100001 \le K \le 10000).
둘째 줄에 정수 F(1),F(2),…,F(K)F(1), F(2), \ldots, F(K)가 주어지며, 각각 1 이상 1000 이하다.
셋째 줄에 정수 MM이 주어진다 (1≤M≤10001 \le M \le 1000).
넷째 줄에 정수 L1,L2,…,LML_1, L_2, \ldots, L_M이 주어지며, 각각 1 이상 10000 이하다.
다섯째 줄에 행운의 수의 개수 TT가 주어진다 (1≤T≤501 \le T \le 50).
다음 TT개 줄에는 각각 두 정수 XX와 C(X)C(X)가 주어진다. XX는 행운의 수이고 C(X)C(X)는 그 가격이다 (1≤X≤1061 \le X \le 10^6, 1≤C(X)≤10001 \le C(X) \le 1000). 같은 행운의 수는 두 번 나오지 않는다.
그다음 줄에 정수 QQ가 주어진다 (1≤Q≤500001 \le Q \le 50000).
다음 QQ개 줄에는 각각 두 정수 AA와 BB가 주어진다 (1≤A,B≤1061 \le A, B \le 10^6).

출력

QQ개 줄을 출력한다. ii번째 줄에는 ii번째 질의의 답을 출력한다.

힌트

K=4K = 4이고 F(1)=F(2)=F(3)=F(4)=1F(1) = F(2) = F(3) = F(4) = 1, 행운의 수는 2와 4로 C(2)=5C(2) = 5, C(4)=10C(4) = 10, L1=1L_1 = 1, L2=2L_2 = 2, 질의는 A=4A = 4, B=2B = 2인 경우를 보자.

L1=1L_1 = 1이면 이동이 한 번뿐이므로 4를 2로 바꾸고 F(d(4/2))=F(2)=1F(d(4/2)) = F(2) = 1을 낸다. 따라서 G(4,2,1)=1G(4, 2, 1) = 1이다.

L2=2L_2 = 2이면 방법이 두 가지다.

  • 4를 2로 바꾼 다음, 2가 행운의 수이므로 그대로 둔다. 가격은 F(d(4/2))+C(2)=1+5=6F(d(4/2)) + C(2) = 1 + 5 = 6이다.
  • 4를 그대로 둔 다음, 2로 바꾼다. 가격은 C(4)+F(d(4/2))=10+1=11C(4) + F(d(4/2)) = 10 + 1 = 11이다.

첫 번째가 더 싸므로 G(4,2,2)=6G(4, 2, 2) = 6이고, 질의의 답은 1+6=71 + 6 = 7이다.

예제3

  1. 예제 1

    입력
    4
    1 1 1 1
    2
    1 2
    2
    2 5
    4 10
    1
    4 2
    
    예상 출력
    7
    
  2. 예제 2

    입력
    3
    6 9 4
    2
    5 7
    3
    1 1
    7 8
    6 10
    2
    6 2
    70 68
    
    예상 출력
    118
    -2
    
  3. 예제 3

    입력
    3
    8 3 10
    2
    8 4
    3
    1 6
    5 1
    3 7
    2
    5 1
    3 1
    
    예상 출력
    16
    66