RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
USACO0290 파일 입출력

COWBASIC

Diamond III 다이아몬드 III
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

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.

Problem credits: Jonathan Paulson

제약

SCORING

  • In 20 percent of all test cases - MOO loops are not nested.
  • In another 20 percent of all test cases - The program only has 1 variable. MOO loops can be nested.
  • In the remaining test cases, there are no further restrictions.

Problem credits: Jonathan Paulson

입력 형식

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.

파일 입력 / 출력
이 문제는 표준 입출력을 사용하지 않습니다. 프로그램은 다음 파일을 읽고 써야 합니다:
입력을 읽을 파일 cowbasic.in
출력을 쓸 파일 cowbasic.out
예제 1
입력
x = 1
10 MOO {
  x = ( x ) + ( x )
}
RETURN x
출력
1024
설명

This COWBASIC program computes \(2^{10}\).

예제 2
입력
n = 1
nsq = 1
100000 MOO {
  100000 MOO {
    nsq = ( nsq ) + ( ( n ) + ( ( n ) + ( 1 ) ) )
    n = ( n ) + ( 1 )
  }
}
RETURN nsq
출력
4761
설명

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

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2016-2017 > US Open > Platinum

태그

평가 및 의견

COWBASIC

개요
출제자 난이도 Diamond III 다이아몬드 III 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

COWBASIC

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8