問題概要
問題ページ
-
A - Remaining Balls
問題ページへ移動する
問題文
文字列 \(S\) の書かれたボールが \(A\) 個、文字列 \(T\) の書かれたボールが \(B\) 個あります。
高橋君は、文字列 \(U\) の書かれたボールを \(1\) 個選んで捨てました。
文字列 \(S,T\) の書かれたボールがそれぞれ何個残っているか求めてください。
制約
- \(S,T,U\) は英小文字のみからなる文字列
- \(S,T\) の長さは \(1\) 以上 \(10\) 以下
- \(S \not= T\)
- \(S=U\) または \(T=U\)
- \(1 \leq A,B \leq 10\)
- \(A,B\) は整数
問題の考察
A問題にしてはコーディングが少し面倒な問題の印象。
- \(S=U\) または \(T=U\)
という制約があるので、最初に与えられたボールの個数からいずれかのボールが一つだけ少なくなることが分かる。
捨てられたボール\(U\)が\(S\)ならば\(A\)を1つ減らし、\(T\)なら\(B\)を1つ減らせばいい。
\(U=S\)なら\((A-1,B)\)、\(U=T\)なら\((A,B-1)\)を出力すれば良い。
たびすけ
「\(S=U\) または \(T=U\)」の制約がポイント
ACコード
import sys
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
s, t = list(map(str, str(input().rstrip('\n')).split()))
a, b = list(map(int, input().rstrip('\n').split()))
if s == str(input().rstrip('\n')):
print(a - 1, b)
else:
print(a, b - 1)
if __name__ == '__main__':
solve()