#347
프로그래밍 언어 COWBASIC
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%
문제
정현이는 새로운 프로그래밍 언어인 COWBASIC을 개발했다. 아직 컴파일러가 없는 정현이를 위해 이 언어로 작성된 프로그램을 실제로 실행해 주는 프로그램을 작성하자.
COWBASIC은 간단하고 우아한 언어이다. 이 언어는 두 가지 핵심 기능을 가진다. 첫 번째는 덧셈이며, 모든 덧셈은 오버플로를 방지하기 위해 로 나눈 나머지를 취한다. 두 번째는 MOO 루프로, 코드 블록을 정해진 횟수만큼 반복하여 실행한다. MOO 루프와 덧셈은 당연히 서로 중첩될 수 있다.
COWBASIC 프로그램이 주어질 때, 프로그램이 반환하는 값을 구하는 프로그램을 작성하시오.
입력
최대 줄로 구성된 COWBASIC 프로그램이 주어진다. 각 줄의 길이는 최대 자이다. 프로그램은 문장(statement)의 목록으로 이루어진다.
문장의 종류는 다음 세 가지이다:
<variable> = <expression>
<literal> MOO {
<list of statements>
}
RETURN <variable>
수식(expression)의 종류는 다음 세 가지이다:
<literal>
<variable>
( <expression> ) + ( <expression> )
리터럴(literal)은 이하의 양의 정수이다.
변수(variable)는 최대 자의 영문 소문자로 이루어진 문자열이다.
모든 변수는 정의되기 전에는 사용되거나 RETURN되지 않는다. RETURN 문은 프로그램의 마지막 줄에서 정확히 한 번 등장한다.
출력
RETURN되는 변수의 값을 출력한다.
예제 입력 1
x = 1
10 MOO {
x = ( x ) + ( x )
}
RETURN x
예제 출력 1
1024
예제 입력 2
n = 1
nsq = 1
100000 MOO {
100000 MOO {
nsq = ( nsq ) + ( ( n ) + ( ( n ) + ( 1 ) ) )
n = ( n ) + ( 1 )
}
}
RETURN nsq
예제 출력 2
4761
제한
- 전체 테스트 케이스의 20%:
MOO루프가 중첩되지 않는다. - 추가 20%: 프로그램에 변수가 단 하나만 존재한다.
MOO루프는 중첩될 수 있다. - 나머지: 추가 제약 조건이 없다.
코드 제출
코드를 제출하려면 로그인이 필요합니다.
로그인내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.