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

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

토네이도 연산 숙제

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

요약
덧셈과 거듭제곱에 쓸 수를 단조 증가 순서로 가장 적게 골라 계산값에 C를 더한 결과가 10의 P제곱 배수가 되게 합니다.
난이도

보통10점 중 7점

유형
BFS, 그래프, 정수론
정답자
아직 제출이 없습니다

문제

수학 숙제를 할 시간이다. 토네이도 연산 T(n)T(n)은 다음과 같이 정의한다.

T(n)={a(n=0)[T(n−1)+Xn]Yn(n∈Z+)T(n) = \begin{cases} a & (n = 0) \\ \left[ T(n-1) + X_n \right]^{Y_n} & (n \in \mathbb{Z}^{+}) \end{cases}

aa는 주어지는 상수이고, Z+\mathbb{Z}^{+}는 양의 정수의 집합이다. XnX_n과 YnY_n은 양의 정수이며, 모든 양의 정수 nn에 대해 Xn≤Xn+1X_n \le X_{n+1}과 Yn≤Yn+1Y_n \le Y_{n+1}을 만족하도록 고른다. 또 모든 양의 정수 nn에 대해 min⁡X≤Xn≤max⁡X\min X \le X_n \le \max X이고 min⁡Y≤Yn≤max⁡Y\min Y \le Y_n \le \max Y이다.

예를 들어 a=1a = 1, X1=2X_1 = 2, X2=4X_2 = 4, Y1=Y2=3Y_1 = Y_2 = 3이면 다음과 같다.

T(2)=[T(1)+X2]Y2=[(T(0)+X1)Y1+X2]Y2=[(1+2)3+4]3=29791T(2) = \left[ T(1) + X_2 \right]^{Y_2} = \left[ (T(0) + X_1)^{Y_1} + X_2 \right]^{Y_2} = \left[ (1 + 2)^3 + 4 \right]^3 = 29791

aa, min⁡X\min X, max⁡X\max X, min⁡Y\min Y, max⁡Y\max Y와 두 양의 정수 PP, CC가 주어진다. X1,…,XnX_1, \ldots, X_n과 Y1,…,YnY_1, \ldots, Y_n을 적절히 골라 T(n)+CT(n) + C가 10P10^P로 나누어떨어지게 만들 때, nn의 최솟값을 구하는 것이 숙제다. nn은 0 이상의 정수이며, n=0n = 0은 연산을 한 번도 적용하지 않고 T(0)=aT(0) = a를 그대로 쓴다는 뜻이다.

입력

입력은 테스트 케이스 여러 개로 이루어진다. 첫 줄에 테스트 케이스의 개수 TT가 주어진다 (1≤T≤2001 \le T \le 200). 이어지는 TT개의 줄에 테스트 케이스가 한 줄에 하나씩 주어진다.

각 줄에는 정수 7개 aa, min⁡X\min X, max⁡X\max X, min⁡Y\min Y, max⁡Y\max Y, PP, CC가 이 순서대로 공백 하나로 구분되어 주어진다 (1≤min⁡X,max⁡X,min⁡Y,max⁡Y≤1001 \le \min X, \max X, \min Y, \max Y \le 100, 1≤P≤31 \le P \le 3, 1≤a,C≤1 000 0001 \le a, C \le 1\,000\,000).

출력

각 테스트 케이스마다 T(n)+CT(n) + C가 10P10^P로 나누어떨어지는 nn의 최솟값을 한 줄에 하나씩 출력한다. 그런 nn이 없으면 대신 -1을 출력한다.

예제1

  1. 예제 1

    입력
    4
    4 1 1 1 2 1 5
    4 1 100 1 100 1 6
    3 1 1 2 2 2 11
    1 2 2 1 1 3 2
    
    예상 출력
    1
    0
    2
    -1