가우스

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

어려움9동적 계획법최단 경로정수론그래프아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

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

선생님은 양의 정수 수열 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개 준다. 각 질의는 수 AABB를 주며, 그 답은 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가 주어진다 (1K100001 \le K \le 10000).
둘째 줄에 정수 F(1),F(2),,F(K)F(1), F(2), \ldots, F(K)가 주어지며, 각각 1 이상 1000 이하다.
셋째 줄에 정수 MM이 주어진다 (1M10001 \le M \le 1000).
넷째 줄에 정수 L1,L2,,LML_1, L_2, \ldots, L_M이 주어지며, 각각 1 이상 10000 이하다.
다섯째 줄에 행운의 수의 개수 TT가 주어진다 (1T501 \le T \le 50).
다음 TT개 줄에는 각각 두 정수 XXC(X)C(X)가 주어진다. XX는 행운의 수이고 C(X)C(X)는 그 가격이다 (1X1061 \le X \le 10^6, 1C(X)10001 \le C(X) \le 1000). 같은 행운의 수는 두 번 나오지 않는다.
그다음 줄에 정수 QQ가 주어진다 (1Q500001 \le Q \le 50000).
다음 QQ개 줄에는 각각 두 정수 AABB가 주어진다 (1A,B1061 \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이다.