問題概要
問題ページ
-
A - Beginner
問題ページへ移動する
問題文
高橋君はプログラミングコンテストサイト「ButCoder」の会員です。
ButCoder の会員には \(2\) つのレーティング 内部レーティング と 表示レーティング が割り当てられています。
表示レーティングは、その会員のコンテスト参加回数が \(10\) 以上のときは内部レーティングに等しく、そうでないときは、会員のコンテスト参加回数を \(K\) として、内部レーティングから \(100 \times (10 - K)\) を引いたものになります。
高橋君のコンテスト参加回数が \(N\) で表示レーティングが \(R\) であるとき、高橋君の内部レーティングを求めてください。
制約
- 入力は全て整数である
- \(1 \leq N \leq 100\)
- \(0 \leq R \leq 4111\)
問題の考察
表示レーティングから内部レーティングを計算する問題。
表示レーティング\(=\)内部レーティング\(-(100 \times (10 - K))\)の式を変形すると、
内部レーティング\(=\)表示レーティング\(+(100 \times (10 - K))\)となる。
制約「参加回数が \(10\) 以上のときは内部レーティングに等しく、そうでないときは、会員のコンテスト参加回数を \(K\) 」から、\(K\)は最大で\(10\)ということが読み取れるので、min(10, n)
のようにmin()
を使うと簡単に表現できる。
たびすけ
変数の上限や下限が決まっている場合には、
min()
やmax()
を使ってあげると簡単に解けるよ!ACコード
import sys
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
n, r = list(map(int, input().rstrip('\n').split()))
print(r + (10 - min(10, n)) * 100)
if __name__ == '__main__':
solve()