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

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

MJH 스크립트

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

요약
26개 변수를 1,000,000,007로 나눈 나머지로 관리하며 MJH 스크립트를 실행한다. P번째 GOTO에서 무한 루프로 보고 종료하며, PRINT 값과 변수 값을 출력한다.
난이도

보통10점 중 5점

유형
시뮬레이션, 구현, 수학
정답자
아직 제출이 없습니다

문제

정후와 함께 MJH 스크립트를 배웁시다.

<MJH 스크립트의 명세>

  • 프로그램은 a부터 z까지의 로마자 소문자 이름을 가지고 있는 26개의 변수를 이용합니다.

  • 각 변수의 초깃값은 0입니다.

  • 프로그램은 하나 이상의 줄로 이루어집니다.

  • 한 줄은 하나의 명령어로 이루어지며, 줄 바꿈으로 끝납니다.

  • 가장 위의 줄인 첫째 줄부터 실행하여, 마지막 줄의 다음 줄로 이동한 경우 프로그램을 종료합니다.

  • 명령어는 다음 중 하나입니다.

    • <lvalue> = <rvalue_1> + <rvalue_2> + ... + <rvalue_k>: 변수 <lvalue>에 <rvalue_1>부터 <rvalue_k>까지의 값을 더한 값을 1,000,000,0071\\,000\\,000\\,007로 나눈 나머지를 대입한 후 다음 줄로 이동합니다. kk는 1 이상의 정수입니다. <lvalue>는 로마자 소문자로, 변수의 이름입니다.
    • GOTO x: xx째 줄로 이동합니다. xx는 프로그램의 줄의 수보다 작거나 같은 양의 정수입니다. 다만, 전체 GOTO 명령어를 통틀어 GOTO 명령어에 PP 번째로 진입한 경우에는 무한 루프로 판단하여 프로그램을 즉시 종료합니다.
    • PRINT <rvalue_1> + <rvalue_2> + ... + <rvalue_k>: <rvalue_1>부터 <rvalue_k>까지의 값을 더한 값을 1,000,000,0071\\,000\\,000\\,007로 나눈 나머지를 출력한 후 다음 줄로 이동합니다. kk는 1 이상의 정수입니다.
  • <rvalue_i>는 다음 중 하나입니다.

    • 1,000,000,0071\\,000\\,000\\,007 미만의 음이 아닌 정수로, 그 값을 나타냅니다.
    • 로마자 소문자로, 그 이름을 가진 변수의 값을 나타냅니다.
    • 1,000,000,0071\\,000\\,000\\,007 미만, 2 이상의 정수 하나와 로마자 소문자 하나를 연달아 쓴 것으로, 정수와 그 이름을 가진 변수의 값을 곱한 값을 나타냅니다.

MJH 스크립트를 이해했다는 것을 증명하기 위해, 주어진 프로그램을 실행해 봅시다.

입력

첫째 줄에 정수 PP가 주어집니다.

그다음 줄부터 프로그램이 주어집니다. 불필요한 공백은 주어지지 않습니다.

출력

PRINT의 값을 한 줄에 하나씩 출력합니다. 단, 그 횟수가 10회 이상일 경우 첫 5회와 마지막 5회만 차례로 출력합니다.

그다음 줄에 a부터 z까지의 변수의 값을 공백으로 구분하여 차례로 출력합니다.

제한

  • 1 ≤ P ≤ 1012
  • 주어진 프로그램은 유한한 시간 안에 종료됩니다.
  • 프로그램의 길이는 1,000,000을 넘지 않습니다. 프로그램의 길이에 줄 바꿈은 포함하지 않습니다.

예제2

  1. 예제 1

    입력
    3
    PRINT 0
    x = 1
    PRINT x
    x = 2x + 1
    GOTO 3
    
    예상 출력
    0
    1
    3
    7
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 0 0
    
  2. 예제 2

    입력
    1000000000000
    PRINT 2a + 1 + 2
    a = 1104
    b = 1000000006
    c = 1000000006a + 998244353b + 123456789
    PRINT a
    PRINT b
    PRINT c
    a = 236a + 691b + 943c
    b = 945a + 701b + 79c
    c = 360a + 994b + 523c
    GOTO 6
    
    예상 출력
    3
    1104
    1000000006
    125211339
    343054800
    144981173
    181835967
    6576280
    711485519
    694070565
    358877707 722350325 211094595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0