Logo
(追記) (追記ここまで)

14524번 - COWBASIC 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB44242153.846%

문제

Bessie has invented a new programming language, but since there is no compiler yet, she needs your help to actually run her programs.

COWBASIC is a simple, elegant language. It has two key features: addition and MOO loops. Bessie has devised a clever solution to overflow: all addition is done modulo \(10^9+7\). But Bessie's real achievement is the MOO loop, which runs a block of code a fixed number of times. MOO loops and addition can, of course, be nested.

Given a COWBASIC program, please help Bessie determine what number it returns.

입력

You are given a COWBASIC program at most 100 lines long, with each line being at most 350 characters long. A COWBASIC program is a list of statements.

There are three types of statements:

<variable> = <expression>
<literal> MOO {
 <list of statements>
}
RETURN <variable>

There are three types of expressions:

<literal>
<variable>
( <expression> ) + ( <expression> )

A literal is a positive integer at most 100,000.

A variable is a string of at most 10 lowercase English letters.

It is guaranteed that no variable will be used or RETURNed before it is defined. It is guaranteed that RETURN will happen exactly once, on the last line of the program.

출력

Output a single positive integer, giving the value of the RETURNed variable.

제한

예제 입력 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

힌트

This COWBASIC program computes \((10^5*10^5+1)^2\) (modulo \(10^9 + 7\)).

출처

Olympiad > USA Computing Olympiad > 2016-2017 Season > USACO 2017 US Open Contest > Platinum 3번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /