Intro
codeforces.com
A: Stickers and Toys
問題文
- おもちゃ屋でチョコエッグが売ってて、中にはおもちゃが入っている。
- チョコエッグの中身は3種類ある。
- sticker のみが一つ入っている
- toyのみが一つ入っている
- sticker と toyが一つづつ入っている。
- どのチョコエッグに、何が入っているのかはわからない。
- 全文のチョコエッグの数と、stickerの数とtoyの数は分かっている。
- 少なくともstickerとtoyを一つづつ手に入れるためには、最低何個のチョコエッグを買えばいいか.
input
output
- 確実に stickerとtoyを一つづつ手に入れるために、最低何個のチョコエッグを買えばいいのか?
consider
- stickerとtoyのセットを買えば、一つで両方手に入る。
- 「確実に手に入る最小の数」は、 一種類のみしか買わないようにして買ったときの最大数 +1になりそう
- つまり、(toyのみ、もしくは、stickerのみのものを片方のみできるだけ多く買ったとき)+1になる。
idea
- チョコエッグの中身は、3種類あるのでそれぞれ何個ずつなのかを求める。
- それで、max(toyのみ,stickerのみ)+1個買えば、確実に両方手に入る。
- toyとstickerのセットになってるチョコエッグの数は、set_num=(sticker+toy-n)で求められる。
- それを使って、toyのみのチョコエッグの数は、t-(set_num)で求められる。(stickerも同様)
implementation
import sys
sys.setrecursionlimit(10**9)
input = sys.stdin.readline
def solve():
N = int(input())
for _ in range(N):
n, t, s = map(int, input().split())
set_num = s+t-n
print(max(s-set_num, t-set_num)+1)
solve()
所感
- atcoderのB問題あたりで出てきそう
- みんな一瞬で解いてたのに、結構時間かかってしまったので焦った。
- 頑張って英語を読みたい