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

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

식의 평가

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

요약
주어진 희소 다항식 표현식이 소수 p에 대해 0이 되는 변수 값 할당의 수를 세어 30011로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 정렬, 구현
정답자
아직 제출이 없습니다

문제

정수 상수 00부터 99까지, 변수 aa부터 zz까지, 그리고 덧셈, 곱셈, 상수 지수를 사용한 거듭제곱 연산으로 이루어진 식 EE가 있다. 놀랍게도 각 변수 a,b,…,za, b, \dots, z는 식 EE 안에 최대 한 번만 나타난다.

소수 pp가 주어질 때, 이 식이 나타내는 다항식이 pp를 법으로 하여 갖는 근의 개수를 구하려고 한다. 다시 말해, 식 EE에 등장하는 각 변수에 00부터 p−1p-1까지의 정수를 대입하는 방법 중에서 EE의 값이 pp로 나누어떨어지는 경우의 수를 센다. 이 개수가 매우 커질 수 있으므로, 3001130011로 나눈 나머지를 출력하면 된다.

예를 들어 식 E=((a+y)⋅(z+8))2E = ((a+y) \cdot (z+8))^2은 p=3p = 3일 때 근을 1515개 가지며, 그중에는 다음과 같은 근들이 있다.

(a=0, y=0, z=0),(a=1, y=2, z=0),(a=2, y=0, z=1)(a=0,\ y=0,\ z=0), \qquad (a=1,\ y=2,\ z=0), \qquad (a=2,\ y=0,\ z=1)

식은 다음과 같이 정의된다.

  • 각 정수 상수 0,1,…,90, 1, \dots, 9는 식이다.
  • 각 변수 a,b,…,za, b, \dots, z는 식이다.
  • AA와 BB가 식이면 (A+B)와 (A*B)도 식이다. 앞은 AA와 BB의 합을, 뒤는 곱을 나타낸다.
  • AA가 식이고 BB가 2,3,…,92, 3, \dots, 9 중 하나의 정수 상수이면 (A^B)도 식이다. 이는 AA를 BB제곱한 것을 나타낸다.

입력

첫째 줄에 소수 pp가 주어진다. (2≤p<150002 \le p < 15000)

둘째 줄에 위에서 정의한 식 EE가 주어진다. 식은 공백 없이 문자 0–9, a–z, +, *, ^, (, )로만 이루어지며, 길이는 최대 300300자이다.

출력

식 EE가 나타내는 다항식이 pp를 법으로 하여 갖는 근의 개수를 kk라 하자. 음이 아닌 정수 k mod 30011k \bmod 30011을 하나 출력한다.

예제5

  1. 예제 1

    입력
    3
    (((a+y)*(z+8))^2)
    
    예상 출력
    15
    
  2. 예제 2

    입력
    5
    0
    
    예상 출력
    1
    
  3. 예제 3

    입력
    7
    5
    
    예상 출력
    0
    
  4. 예제 4

    입력
    5
    a
    
    예상 출력
    1
    
  5. 예제 5

    입력
    5
    (a+b)
    
    예상 출력
    5